当前位置:文档之家› mysql语法规范

mysql语法规范


1:关键字与函数名必须为大写,小写也可以只是。大写为了容易区分。
2:数据库、字段、表名称全部小写。
3:sql语句必须以分号结尾。


创建数据库语法结构

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name

CREATE DATABASE t1;//创建数据库名为t1。
[DEFAULT]可写可不写
[IF NOT EXISTS]可加可不加

查看当前服务器下的数据列表

SHOW {DATABASES | SCHEMAS}
[LIKE 'pattern' | WHERE expr]

查看数据创建的时候的编码

SHOW CREATE DATABASE 文件名;

修改数据库编码

ALTER {DATABASE | SCHEMA} [db_name]
[DEFAULT] CHARACTER SET [=] charset_name

删除数据库

DROP {DATABASE | SCHEMA} [IF EXISTS] data_name

查看警告


SHOW WARNINGS;

创建数据表


CREATE TABLE [IF NOT EXISTS] table_name(

column_name data_type,
....
)

创建数据表的同时把查询的结果写入到数据表

CREATE TABLE [IF NOT EXISTS] table_name
[(create_definition,...)]
select_statement

//创建b1数据表
CREATE TABLE b1(
->username VARCHAR(20),
->age TINYINT UNSIGNED,
->salary FLOAT(8,2) UNSIGNED
->);

查看数据表

SHOW TABLE [FROM table_name]
[LIKE 'pattern' | WHERE expr]

查看数据表结构

SHOW COLUMNS FROM table_name

DESC table_name


查看历史

history;


插入记录

INSERT [INTO] table_name [(col_name...)] VALUES(val...);//可一次性插入多条记录

INSERT [INTO] table_name SET col_name [expr | default],...//可以使用子查询

INSERT new_table_name SELECT col_name FROM table_name WHERE condition//可把table_name里面符合条件的数据赋值给new_table_name。

INSERT [INTO] table_name [(col_name...)] SELECT...
查找记录

SELECT * FROM table_name//查找数据表table_name里面的所有记录

SELECT select_expr [,select_expr] FROM table_name
[
FROM table_references
[WHERE where_condition]
[GROUP BY {col_name | position} [ASC | DESC],...]
[HAVING where_condition]
[ORDER BY {col_name | expr | position} [ASC | DESC],...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
]

删除记录

DELETE FROM table_mane WHERE id = '';


空值和非空值

NULL

NOT NULL

自动编号

AUTO_INCREMENT //自动编号,且必须和主键组合使用。默认情况下,起始值为1,增量为1。

主键

PRIMARY KEY //主键约束,每张数据表只能有一个主键,主键保持数据的唯一性,主键自动设置为 NOT NULL。AUTO_INCREMENT必须跟PRIMARY KEY

一起使用,但是PRIMARY KEY不一定要跟AUTO_INCREMENT使用。


唯一约束
UNIQUE KEY //唯一约束,唯一约束可以保证记录的唯一性,唯一约束的字段可提为空值,每张数据表可以存在多个唯一约束。

默认值

DEFAULT//默认值,当插入记录时,没有明确为字段赋值,则自动赋予默认值

外键

FOREI

GN KEY

保持数据的完整性和一致性,实现一对一或一对多的关系

可查看存储引擎
SHOW CREATE TABLE table_name

外键约束的参照操作

1:CASCADE:从父表中删除或更新且字段删除或更新子表中匹配的的行。

2,SET NULL:从父表删除或更新行,并设置子表中外键列的值为NULL,如果使用该方法,子表列必须没有指定NOT NULL。

3,RESTRICT:拒绝对父表删除或更新操作

3,NO ACTION:标准sql的关键字,在MySQL中和RESTRICT相同。

添加单列

ALTER TABLE table_name ADD[COLUMN] col_name colunm_definition[FRIST | AFTER col_name]

添加多列

ALTER TABLE table_name ADD[COLUMN](col_name colunm_definition,...)


删除列

ALTER TABLE table_name DROP[COLUMN] col_name

删除多列

ALTER TABLE table_name DROP[COLMN] col_name,col_name//操作多个列用逗号隔开

添加主键

ALTER TABLE table_name ADD [CONSTRAINT[symbol]] PRIMARY KEY[index_type](index_col_name,...)

添加唯一约束

ALTER TABLE table_name ADD [CONSTRAINT[symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...)

添加外键约束

ALTER TABLE table_name ADD[CONSTRAINT[symbol]] FOREIGN KEY [index_name] [index_col_name] REFERENCE_definition

添加/删除默认约束

ALTER TABLE table_name ALTER[COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}

删除主键约束

ALTER TABLE table_name DROP PRIMARY KEY

删除唯一约束

ALTER TABLE table_name DROP {INDEX | KEY} index_name

删除外键约束

ALTER TABLE table_name DROP FOREIGN KEY fk_symbol

修改列定义

ALTER TABLE table_name MODIFY [COLUMN] col_name column_definition [first | after col_name]

修改列名称

ALTER TABLE table_name CHANGE [COLUMN] old_col_name new_col_name column_definition [first | after col_name]//既可以修改列名称又可以修改列定义


修改数据表名称

方法一

ALTER TABLE table_name RENAME [TO | AS] new_table_name

方法二

RENAME TABLE table_name TO new_table_name
[,table_name2 TO new_table name2]//可同时操作多个数据表名称

更新记录(单表更新)(多表更新)

UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1 = {expr1 | default}[,col_name2 = {expr2 | default}]
[WHERE where_condition]

删除记录 (单表删除)

DELETE FROM table_name [WHERE where_condition]
多表删除

DELETE table_name[.*] [,table_name[.*]]...
FROM table_references
[WHERE where_condition]

SET NAMES gbk;意思是改变客户端的编码格式,而不影响真的数据库中的真实数据

相关主题
文本预览
相关文档 最新文档