# 原创 : 第一章 数据库和SQL # 第一章 数据库和SQL > 参考书籍:[https://book.douban.com/subject/27055712/](https://book.douban.com/subject/27055712/) #### 目录 ### 1、法则 ### 2、SQL书写规则 ### 3、权限管理 MySQL 的账户信息保存在 mysql 这个数据库中。 ``` USE mysql; SELECT user FROM user; ``` **创建账户** 新创建的账户没有任何权限。 ``` CREATE USER myuser IDENTIFIED BY 'mypassword'; ``` **修改账户名** ``` RENAME myuser TO newuser; ``` **删除账户** ``` DROP USER myuser; ``` **查看权限** ``` SHOW GRANTS FOR myuser; ``` **授予权限** 账户用 username@host 的形式定义,username@% 使用的是默认主机名。 ``` GRANT SELECT, INSERT ON mydatabase.* TO myuser; ``` **删除权限** GRANT 和 REVOKE 可在几个层次上控制访问权限: ``` REVOKE SELECT, INSERT ON mydatabase.* FROM myuser; ``` **更改密码** 必须使用 Password() 函数 ``` SET PASSWROD FOR myuser = Password('new_password'); ``` ### 4、SQL常用命令 修改MySQL提示符: ``` mysql -uroot -proot --prompt 提示符 # 连接客户端时通过参数指定 prompt 提示符 # 连接客户端之后,通过prompt指定 ``` 参数描述 |------ \D完整的日期 \d当前数据库 \h服务器名称 \u当前用户 ``` CREATE {DATEBASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name ``` ``` SHOW {DATABASE | SCHEMAS} [LIKE "pattern" | WHERE expr] ``` ``` SHOW WARNINGS; ``` ``` SHOW CREATE DATABASE t1; ``` ``` ALTER {DATABASE | SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] charset_name ``` ``` DROP {DATABASE |SCHEMA} [IF EXISTS] db_name; ``` ``` SELECT * FROM mytable; -- 注释 /* 注释1 注释2 */ ``` ### 5、表的创建、修改和插入 #### 创建表 ``` CREATE TABLE mytable ( id INT NOT NULL AUTO_INCREMENT, col1 INT NOT NULL DEFAULT 1, col2 VARCHAR(45) NULL, col3 DATE NULL,+ PRIMARY KEY (`id`)); --设定主键 ``` #### 修改表 添加列 ``` ALTER TABLE mytable ADD col CHAR(20); ``` 删除列 ``` ALTER TABLE mytable DROP COLUMN col; ``` **删除表** ``` DROP TABLE mytable; ``` 修改表名 ``` ALTER TABLE <原表名> to <新表名> ``` #### 插入表数据 普通插入,不指定列则要求全部要插入 ``` START TRANSACTION; INSERT INTO mytable(col1, col2) VALUES(val1, val2); ... COMMIT; ```