数据库的基本语法
数据库的数据类型
数值型
tinyint 十分小的数据 1个字节
smallint 很小的数据 2个字节
mediumint 中等大小的数据 3个字节
int 标准整数 4个字节 比较常用的
bigint 较大的数据 8个字节
float 浮点数 4个字节
double 浮点数 8个字节
decimal 字符串形式的浮点数 金融计算一般使用decimal
字符串
char 字符串固定大小0-255
varchar 可变字符串 0-65535 常用的
tinytext 微型文本 2^8-1
text 文本串 2^16-1 用来保存大文本
时间日期
date YYYY-MM-DD 日期格式
time HH:mm:ss 时间格式
datetime YYYY-MM-DD HH:mm:s 最常用的时间格式
timestamp 时间戳 1970.1.1到现在的毫秒数 也比较常用
year --年份表示
null 类型
注释相关
1、 -- 表示单行注释
2、/*
*/ 表示多行注释
数据库相关语法
创建数据库
create database 数据库名 character set 字符集 COLLATE utf8_general_ci; --指定编码方式和排序方式
--例子:
create database school CHARACTER SET utf8 COLLATE utf8_general_ci
说明:
utf8_unicode_ci,其实是用来排序的规则。对于mysql中那些字符类型的列,如VARCHAR,CHAR,TEXT类型的列,都需要有一个COLLATE类型来告知mysql如何对该列进行排序和比较。简而言之,COLLATE会影响到ORDER BY语句的顺序,会影响到WHERE条件中大于小于号筛选出来的结果,会影响DISTINCT、GROUP BY、HAVING语句的查询结果。另外,mysql建索引的时候,如果索引列是字符类型,也影响索引创建,只不过这种影响我们感知不到。总之,凡是涉及到字符类型比较或排序的地方,都会和COLLATE有关系
删除数据库
DROP DATABASE [IF EXISTS] 数据库名;
使用数据库
use 数据库名称
查看所有数据库
show databases -- 查看所有数据名称
表相关语法
创建表
CREATE TABLE [IF NOT EXISTS] `表名`(
`字段名` 列数据类型 [属性] [索引] [注释],
`字段名` 列数据类型 [属性] [索引] [注释],
......
`字段名` 列数据类型 [属性] [索引] [注释]
)[表类型] [字符集设置] [注释]
例子:在school数据库下创建一个学生表,包含学生的id,姓名,性别,生日,地址,联系方式。
CREATE TABLE `student`(
`id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(20) NOT NULL COMMENT '学生姓名',
`age` INT(3) NOT NULL COMMENT '年龄',
`sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',
`address` VARCHAR(10) DEFAULT NULL COMMENT '家庭住址',
`birthday` DATETIME DEFAULT NULL COMMENT '生日',
`phoneNum` VARCHAR(11) DEFAULT NULL COMMENT '联系方式',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
注意
-
字段名、表名尽量使用``符号标出来
-
要使用英文的括号和逗号
-
create table里只有最后一句不用逗号
-
primary key(字段名) --将某一字段设置为主键
-
数据库引擎的选取
MYISAM INNODB 事务支持 不支持 支持 外键约束 不支持 支持 全文索引 支持 不支持 表空间大小 较小 较大 约为MYISAM的2倍
基本操作表的语句,可以直接获取代码
show create database school --查看定义数据库的语句
show create table student --查看student定义表的语句
desc 表名 --显示表的结构
对表的操作
- 修改表名
altet table 旧表名 rename as 新表名 --修改表名
-
增加字段
alter table 表名 add 字段名 列属性 --增加表字段 ex: ALTER TABLE `stu` ADD `email` VARCHAR(1);
-
删除字段
alter table 表名 drop 字段名
DML插入、删除、修改表数据
插入
格式:
-- 单条插入
inset into 表名[(字段1, 字段2, 字段3...)] values('值1','值2','值3',...)
--多条插入
inset into 表名[(字段1, 字段2, 字段3...)] values('值1','值2','值3',...),(),()
删除
delete 表名 where 条件;
修改
update 表名 set colnum_name =value[,colnum_name =value] where [条件]