SQL语句

MYSQL语句的规范
(1)关键字与函数名称全部大写
(2)数据库名称、表名称、字段名称全部小写
(3)SQL语句必须以分号结尾
数据类型:指列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。
(1)整型(若是无符号的,则在后面添加UNSIGNED修饰)
--》TINYINT(1字节)
--》SMALLINT(2字节)
--》MEDIUMINT(3字节)
--》INT(4字节)
--》BIGINT(8字节)
(2)浮点型(M是数字总位数,D是小数点后面的位数,若省略,则根据硬件允许的限制来保存值,若是无符号的,则在后面添加UNSIGNED修饰)
--》FLOAT[(M,D)]
--》DOUBLE[(M,D)]
(3)日期时间型(一般很少用,转换成整型存储较普遍)
--》YEAR(1字节)
--》TIME(3字节)
--》DATE(3字节)
--》DATETIME(8字节)
--》TIMESTAMP(4字节)
(4)字符型
--》CHAR(M);M个字节,0<=M<=255
--》VARCHAR(M):L+1个字节,其中L<=M且0<=M<=65535
--》TINYTEXT:L+1个字节,其中L<2^8
--》TEXT:L+2个字节,其中L<2^16
--》MEDIUMTEXT:L+3个字节,其中L<2^24
--》LONGTEXT:L+4个字节,其中L<2^32
--》ENUM('value1','value2',...):1或2个字节,取决于枚举值的个数(最多65535个),值为其中一个枚举值。
--》SET('value1','value2',...):1、2、3、4或者8个字节,取决于set成员的数目(最多64个),值为成员的任意组合。
 
 
SQL语句
数据库操作:
(1)创建数据库:CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] 【CHARACTER SET [=] charset_name】
(2)修改数据库:ALTER {DATABASE | SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] charset_name
(3)删除数据库:DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
(4)查看数据库创建信息:SHOW CREATE DATABASE db_name
 
数据表操作:
数据表在数据库中,所以首先要打来数据库:USE 数据库名称
(1)创建数据表:
CREATE TABLE [IF NOT EXISTS] table_name(
    column_name column_definition,
    ....
 )
(2)修改数据表:
--》添加单列:ALTER TABLE tb_name ADD [COLUMN] 列名称 列定义 [FIRST | AFTER 列名称]
--》添加多列(只能添加在最后):ALTER TABLE tb_name ADD [COLUMN] (col_name column_definition,...)
--》删除列:ALTER TABLE tb_name DROP col_name [,DROP col_name...]
--》添加主键约束:ALTER TABLE 表名称 ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type(索引类型,默认是B-tree)] (index_col_name,...)
--》删除主键约束:ALTER TABLE 表名称 DROP PRIMARY KEY(因为一个表只能有一个主键约束,所以可以这样)
--》添加唯一约束:ALTER TABLE 表名称 ADD [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...)
--》添加外键约束:ALTER TABLE tb_name ADD [CONSTRAINT [symbol]] 外键约束
--》添加/删除默认约束:ALTER TABLE 表名 ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
--》修改列定义:ALTER TABLE 表名称 MODIFY [COLUMN] 列名称 列定义 [FIRST | AFTER col_name]
--》修改列名称:ALTER TABLE 表名称 CHANGE [COLUMN] 旧列名称 新列名称 列定义 [FIRST | AFTER col_name]
--》数据表改名:
1.ALTER TABLE 旧表名称 [AS|TO} 新表名称
2.RENAME TABLE (旧表名称 TO 新表名称)+  可同时改多个表名称
(2)查看数据表创建信息:SHOW CREATE TABLE tb_name
(3)查看数据表列表:SHOW TABLES [FROM db_name] [LIKE 'pattern' | WHERE expr]
(4)查看数据表结构:SHOW COLUMNS FROM tb_name 或者 DESC tb_name
(5)插入记录:
--》插入多条记录:INSERT [INTO] tb_name [(col_name,...)] VALUES ({value|DEFAULT|NULL},...) [,VALUES()...]
--》将查询结果插入:INSERT [INTO] 表名称 [(col_name,...)] SELECT ...
(6)查找记录:SELECT expr,... FROM tb_name
(7)更新记录:UPDATE 表名称 SET col_name={expr | DEFAULT |...} [,col_name=...] [WHERE ...]
(8)删除记录:DELETE FROM 表名称 [WHERE ...]
 
术语&概念
约束:保证数据的完整性和一致性,可分为表级约束(对一个数据列建立的约束,既可以在列定义时声明,也可以在列定义后声明)和列级约束(对多个数据列建立的约束,只能在列定义后声明,NOT NULL和DEFAULT只有列级约束)。
(1)主键约束:PRIMARY KEY或者KEY
--》每张数据表只能存在一个主键
--》主键保证记录的唯一性
--》主键自动为NOT NULL
--》AUTO_INCREMENT必须与主键搭配使用
(2)唯一约束:UNIQUE KEY
--》每张数据表可以存在多个唯一约束
--》唯一约束保证记录的唯一性
--》唯一约束的字段可以为空值(NULL)
(3)默认约束:DEFAULT
--》当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。
(4)非空约束:NOT NULL
(5)外键约束:FOREIGN KEY (列字段) REFERENCES 父表(被关联的父表字段) [ON DELETE 参照操作] [ON UPDATE 参照操作]
--》要求:
1.父表和子表的存储引擎只能为InnoDB,而且禁止使用临时表。
2.数据表的存储引擎只能为InnoDB。
3.外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同。
4.外键列和参照列必须创建索引。如果外键列不存在索引的话,MYSQL将自动创建索引。
--》参照操作:
1.CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行
2.SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL。
3.RESTRICT:拒绝对父表的删除或更新操作。
4.NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同

转载于:https://www.cnblogs.com/allen-blogs/p/5412879.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值