一、MySQL语法规范
1. 语句不区分关键字的大小写,但建议关键字大写;表名、列名小写
2. 数据库名称、表名和列名等可以使用下面三种字符
半角英文字母
半角数字
下划线
3. 名称必须以半角英文字母作为开头 且 不可以重复
4. 每条命令最好用分号结尾
5. 输入符号时只能使用英文
6. 每条命令根据需要,可以进行缩进或换行
7. 注释:单行注释: #注释文字 or -- 注释文字;多行注释: /* 注释文字 */
8. 列名不能加单引号
二、
2.1 创建数据表 (语法:CREATE)
在终端或者MySQL Workbench写代码
#create a new table
CREATE TABLE [table name](column name, column type, column constraints);
举例:
CREATE TABLE students(id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(15) NOT NULL,
age TINYINT UNSIGNED DEFAULT 0,
height DECIMAL(5,2) DEFAULT 0,
gender ENUM(“男”, “女”, “中性”, “保密”) DEFAULT “保密”,
cls_id INT UNSIGNED NOT NULL
2.2 删除数据表 (语法:DROP)
在终端或者MySQL Workbench写代码
# drop table
DROP TABLE [table name];
2.3 修改数据表 (语法:ALTER)
在终端或者MySQL Workbench写代码
(1) 添加新的字段/列 (语法:ALTER......ADD)
ALTER TABLE [table name] ADD [column name] type/constraints;)
举例:
ALTER TABLE students ADD birthday DATETIME DEFAULT “2011-11-11 11:11:11”;
(2) 修改表中字段/列的信息 (语法:ALTER......MODIFY)
ALTER TABLE [table name] MODIFY [column name] type/constraints;
举例:
ALTER TABLE students MODIFY birthday DATE DEFAULT “2011-11-11”;
(3) 修改表中字段/列的名字 (语法:ALTER......CHANGE)
ALTER TABLE [table name] CHANGE [old column name] [new column name];
举例:
ALTER TABLE students CHANGE birthday birth DATE DEFAULT “2010-11-11”
(4) 删除表中某字段/列 (语法:ALTER......DROP)
ALTER TABLE [table name] DROP [column name];
举例:
ALTER TABLE students DROP birth;
三、增添、删除、修改数据表中的数据信息
3.1 增添数据表中的数据信息 (语法:INSERT)
第一种方法:在终端或者MySQL Workbench写代码
(1) 添加全部字段的信息
INSERT INTO [table name] VALUES (value1, value2, …)
举例:
INSERT INTO students VALUES (0, “vivian”,18,180.00, female, 2)
但是这种添加数据的方式在实际开发中应用的不多,因为一旦表结构发生变化,全列插入就会报错
(2) 添加特定字段的信息
INSERT INTO [table name](column1, column2,…) VALUES(value1, value2, …)
举例:
INSERT INTO students(name, height, gender, cls_id) VALUES (“kevin” ,190.00, ‘secret’,1)
(3) 添加多行信息
INSERT INTO [table name] VALUES ((value1), (value2), (value3),…)
举例:
INSERT INTO students VALUES ((0,“kevin
3.2 删除数据表中的数据信息 (语法:DELETE)
在终端或者MySQL Workbench写代码
DELETE FROM [table name] WHERE [column name] = [value];
举例:
DELETE FROM students WHERE id = 0005;
如果语句中忘了写 FROM,而是写成了“DELETE < 表名 >”,或者写了多余的列名,都会出错,无法正常执行。
与SELECT语句不同的是,DELETE语句中不能使用GROUP BY、 HAVING和ORDER BY三类子句,而只能使用WHERE子句。原因很简单, GROUP BY和HAVING是从表中选取数据时用来改变抽取数据形式的, 而ORDER BY是用来指定取得结果显示顺序的。因此,在删除表中数据 时它们都起不到什么作用。
此外,可以使用TRUNCATE语句来删除表中的全部数据
TRUNCATE <table name>;
与 DELETE 不同的是,TRUNCATE 只能删除表中的全部数据,而不能通过 WHERE 子句指定条件来删除部分数据。也正是因为它不能具体地控制删除对象, 所以其处理速度比 DELETE 要快得多。实际上,DELETE 语句在 DML 语句中也 属于处理时间比较长的,因此需要删除全部数据行时,使用 TRUNCATE 可以缩短 执行时间。
3.3 修改数据表中的数据信息 (语法:UPDATE)
在终端或者MySQL Workbench写代码
UPDATE [table name] SET [column name] = [value] WHERE ...;
其中 where语句确定了修改的范围,如果没有包含where语句,则默认修改整个表的信息。
举例:
UPDATE students SET age = 20 where id = 0004;
此外,还可以使用UPDATE语句可以将值清空为NULL(但只限于未设置NOT NULL约束的列)
例如:
UPDATE students SET age = NULL where id = 0004;
多列更新:
UPDATE students
SET age = age + 10,
gender = 'female'
WHERE id = '0006';