引用
http://c.biancheng.net/mysql/10/
https://www.runoob.com/mysql/mysql-create-tables.html
https://www.runoob.com/sql/sql-autoincrement.html
https://blog.csdn.net/u014044812/article/details/51004754
数据类型
数值类型
- TINYINT(1 byte):微小整数值
- SMALLINT(2 bytes):小整数值
- MEDIUMINT(3 bytes):中整数值
- INT/INTEGER(4 bytes):大整数值
- BIGINT(8 bytes):极大整数值
- FLOAT(4 bytes):单精度浮点数值
- DOUBLE(8 bytes):双精度浮点数值
- DECIMAL:小数值 ,DECIMAL(P,D):
P是表示有效数字数的精度。 P范围为1〜65
D是表示小数点后的位数。 D的范围是0~30
MySQL要求D<=P,默认P=10,D=0
日期和时间类型
- DATE(3 bytes):日期 YYYY-MM-DD
- TIME(3 bytes):时间 HH:MM:SS
- YEAR(1 byte):年份 YYYY
- DATETIME(8 bytes):日期和时间值 YYYY-MM-DD HH:MM:SS
- TIMESTAMP(4 bytes):日期和时间值 时间戳
字符串类型
- CHAR(0-255 bytes):定长字符串
- VARCHAR(0-65535 bytes):变长字符串
- TINYTEXT(0-255 bytes):短文本数据
- TEXT(0-65535 bytes):文本数据
- MEDIUMTEXT(0-16777215 bytes):中等文本数据
- LONGTEXT(0-4294967295 bytes):极大数据文本
- ENUM(1-2 bytes):枚举
<字段名>ENUM ('value1','value2','value3')
可通过名称和索引使用,索引从1开 - SET (0-8 bytes):组 ,与ENUM相似,可以使用多个
二进制类型
- BIT(0-64 位):位字段类型
- BINARY(M bytes):固定长度二进制字节
- VARBINARY(M bytes):可变长度二进制字节
- TINYBLOB(0-255 bytes):二进制微字符串
- BLOB(0-65535 bytes):二进制小字符串
- MEDIUMBLOB(0-16777215 bytes):二进制中等字符串
- LONGBLOB(0-4294967295 bytes):二进制长字符串
Spatial
JSON
创建,删除相关
创建
CREATE TABLE table_name (column_name column_type(size));
约束字段 在列名后部分加或做方法 常用如下
- NOT NULL:非空- 指示某列不能存储 NULL 值
ID int NOT NULL
- UNIQUE:唯一 - 保证某列的每行必须有唯一的值
ID int UNIQUE
- PRIMARY KEY:主键 - NOT NULL 和 UNIQUE 的结合,每个表一个主键
ID int PRIMARY KEY
FOREIGN KEY:外键- 指向另一个表的UNIQUE
键
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
CHECK:检查- 保证列中的值符合指定的条件。
CHECK (P_Id>0)
DEFAULT:默认- 规定没有给列赋值时的默认值。
City varchar(255) DEFAULT 'JS'
AUTO_INCREMENT:自动增长- 在新记录插入表中时生成一个唯一的数字
ID int AUTO_INCREMENT
删除
清空表内数据
TRUNCATE TABLE table_name
删除表
DROP TABLE table_name
删除数据库
DROP DATABASE database_name
删除索引
ALTER TABLE table_name DROP INDEX index_name
索引
索引使数据库应用程序可以更快地查找数据,但更新更耗时,其中唯一索引效率更高。
CREATE INDEX index_name
ON table_name (column_name)
CREATE UNIQUE INDEX index_name
ON table_name (column_name)
SQL 查询顺序
- from
- join
- on
- where
- group by(开始使用select中的别名,后面的语句中都可以使用)
- avg,sum....
- having
- select
- distinct
- order by
- limit
详见
https://blog.csdn.net/u014044812/article/details/51004754
select 考生姓名, max(总成绩) as max总成绩
from tb_Grade
where 考生姓名 is not null
group by 考生姓名
having max(总成绩) > 600
order by max总成绩