[命令的组成]
-) DML(数据操作语言){插入、删除、修改}
-) DCL(数据控制语言){存取许可、存取权限}
-) DQL(数据查询语言){查询}
-) DDL(数据定义语言){建立数据库、数据库对象、定义表的列}
[运算符]
-) 数学
-) + - * / %
-) 比较
-) = : 等于
-) > : 大于
-) < : 小于
-) <>: 不等于
-) >=: 大于等于
-) <=: 小于等于
-) !=: 不等于
-) like : 模糊比较,跟通配符配合
-) is null : 是空,未初始化过的,跟a=''有区别
-) between : 在两者范围之间,跟and配合,例如:a between 60 and 80
-) in : 跟任意条件吻合均可,跟()配合,例如:a in('北京','广州','上海')
-) 逻辑
-) and : 并且
-) or : 或者
-) not : 非
[通配符]
-) _ : 一个任意字符
-) % : 任意长度的字符串
-) []: 范围内的任意一个字符,例如[1-3]
-) [^]: ^非的意思
[列的数据类型]
-) 数值
类型
字节数 值范围 tinyint(a) 1 -128~127 0~255 smallint(a) 2 -32768~32767 0~65535 mediumint(a) 3 -8388608~8388607 0~16777215 int(a) 4 -2147683648~2147683647 bigint(a) 8 -9223372036854775808~9223373036854775807 0~18446744073709551615 float(a,b) 4 ±1.175494351e-38 double(a,b) 8 ±2.2250738585072014e-308 decimal(a,b) 自定义 值取决于a~b的字节数 -) 字符<串>
类型 最大字节 自定义字节 说明 char(a) a varchar(a) a 0~a 空间自动分配 tinyblob 28-1 blob 216 -1 mediumblob 224-1 longblob 232-1 tinytext text 216 -1 mediumtext longtext enum 65535 个成员 set 64个成员 -) 时间
类型 字节数 取值范围 说明 data 3 “1000-01-01”到“9999-12-31” YYYY-MM-DD time 3 “-838:59:59”到“838:59:59” hh:mm:ss datatime 8 “1000-01-01 00:00:00” 到“9999-12-31 23:59:59” YYYY-MM-DD hh:mm:ss timestamp 4 19700101000000 到2037 年的某个时刻 YYYYMMDDhhmmss year 1 1901 到2155 YYYY -) null
[数据库服务器]
-) 登陆服务器
-) mysql -Aa -Ab c: 登陆到服务器
A{-u、-p、-h}:-u:账户,-p:登陆密码,-h:主机名称
a{root、grusirna}:账号
b{123456、null}:登陆密码
c{mysql、school}:要访问的数据库
-) 服务器状态管理
-) service a A
a{mysql、oracle}:服务名称
A{ service:服务管理、start:启动、stop:停止、status:状态、restart:重启 }
-) 创建服务器账户
-) grant a on b to 'c'@'d' identified by 'e' with grant option; :grant方式创建,推荐``
a{all、all privileges、select、insert、update、delete、create、drop}:权限类型
b{*.*、mysql.*}:数据库名称
c{'inter'、'grusirna'}:账户名称
d{'localhost'、'%'}:主机名称
e{'123456'、'ccg'}:账户密码
#示例
grant all privileges on *.* to 'grusirna'@'localhost'
identified by '123456' with grant option;
-) insert into user(Host,User,Password) values('a','b',PASSWORD('c'));添加用户,insert方式创建
a{'localhost'、'%'}:主机名称
b{'inter'、'grusirna'}:账户名称
c{'12345'、'cgg'}:账户密码
c{'12345'、'cgg'}:账户密码
`` insert into db(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv)
`` values('a','b','c','d','d','d','d','d','d');
a{'localhost'、'%'}:主机名称
b{*.*、mysql.*}:数据库名
c{'inter'、'grusirna'}:账户名称
d{'Y'、'N'}:是否赋予权限,Y表示yes,N表示no
`` flush privileges; : 重载授权表
#示例
insert into user(Host,User,Password)
values('localhost','grusirna',PASSWORD('123456');
insert into db(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv)
values('localhost','shool','grusirna','Y','Y','Y','Y','Y','Y');
-) 修改服务器默认的数据库存放位置
-) 打开/etc/my.cnf,修改datadir为自定义位置
[数据库]
-) 查询所有数据库
-) show databases; : 查询所有数据库
-) 查询当前的数据库
-) select database(); : 查询当前的数据库-) 选择数据库
-) use a; : 使用数据库
a : 数据库名
-) 创建数据库
-) create database a; : 创建数据库
a : 数据库名
-) 删除数据库
-) drop database a; : 删除数据库
a : 数据库名
[表]
-) 查询所有表
-) show tables; : 查询当前数据库中的所有表-) 创建表
-) create table a
(
b c(d) not null primary key auto_increment default 'e',
); : 创建表
解释如下:
a : 表名
b : 字段
解释如下:
a : 表名
b : 字段
c : 字段类型
d : 类型长度
not null : 是否允许为空,默认不写则为空
primary key : 是否主键,默认不写为否
auto_increment : 自动增加,默认不写为否
default 'value' : 默认值
not null : 是否允许为空,默认不写则为空
primary key : 是否主键,默认不写为否
auto_increment : 自动增加,默认不写为否
default 'value' : 默认值
-) 删除表
-) drop table a; : 删除一个名为name的表,需要有drop权限[记录]
-) 查询单表记录
-) select h a+a as e,e=a+a from b where a=c group bya havinga order by a d ; 查询表数据
a : 字段或字段表达式
b : 表
c : 字段值
d{asc、desc} : 升序(缺省)或降序
e : 另起名
h{top 5、top 20 percent} : 限制记录数
查询关键字的区别:
where子句 :用来筛选from子句中指定的操作所产生的行
group by 子句 : 用来分组where子句的输出
having子句 :用来从分组的结果中筛选行
-) 查询多表记录
-) select a from b inner joinc ond ;
a : 查询的列
b : 表
c : 另外的表
d : 两表的匹配行
inner join{left join、right outer join}
例如:
select S.SName,C.CourselD,C.Score
from Score as C
inner join Student as s
on C.StudentID = S.SCode
-) select a from b where d
a : 查询的列的集合,逗号隔开
b : 表的集合,逗号隔开
d : 多表的匹配行,逗号隔开
例如:
select Student.SName,Score.CourselD,Score.Score
from Students,Score
where Students.SCode = Score.StudentID
-) 插入记录
-) insert into a(b,b) value(c,c) : 插入一条记录
a : 表
b : 表中的字段
c : 字段的值
-) insert into a(b,b) select c,c from d : 把其他表的数据插入到当前表
a : 表
b : 表中的字段
c : 其他表的字段
d : 其他表
-) 修改记录
-) update a set b='c',b='c' where d=e :根据条件更新字段
a : 表名
b : 字段(修改)
c : 字段值
d : 字段(条件)
e : 字段值(条件)
-) 删除记录
-) delete from
a where
b=
c : 根据条件删除指定记录
a : 表名
b : 字段
c : 字段值
-) truncate table
a : 删除整个表的记录
a : 表名
[字段]
-) 字段约束
-) alter table
a add constraint
b c(
d) references
a(
d); 添加约束
a : 表
b {pk、uq、df、ck}: 约束名
c {primary key、unique、default、check、foreign key}: 约束类型
d : 字段
-) alter table
a drop constraint
b ; 删除约束
a :表
b : 约束名
-) 字段属性查看
-) desc
a; 列的属性
a : 表名