1、mysql数据库语言基础
查看mysql数据库的版本号:show version();
sql (structured query language) 结构化查询语言
库的操作:
查看:show databases;
切换:use dataname;
创建:create database dataname;
删除:drop database dataname;
表的操作:
创建:create tables table_name ( column_name column_type);
删除:drop table table_name;
表名重命名:alter table table_name rename new_name;
向表中添加列:alter table table_name add link varchar(100);
删除表中一列:alter table table_name drop column link;
修改一个列的数据类型:alter table table_name modify link varchar(100);
重命名一个列:alter table table_name change column old_link new_link varchar(100);
插入数据:insert into table_name ( field1, field2,...fieldn )
values
( value1, value2,...valuen );
查询:select column_name,column_name
from table_name
[where clause]
[offset m ][limit n]
where子句
select field1, field2,...fieldn from table_name1, table_name2...
[where condition1 [and [or]] condition2.....
操作符
<col>
描述
实例
=
等号,检测两个值是否相等,如果相等返回true
(a = b) 返回false。
<>, !=
不等于,检测两个值是否相等,如果不相等返回true
(a != b) 返回 true。
>
大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true
(a > b) 返回false。
<
小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true
(a < b) 返回 true。
>=
大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true
(a >= b) 返回false。
<=
小于等于号,检测左边的值是否小于于或等于右边的值, 如果左边的值小于或等于右边的值返回true
(a <= b) 返回 true。
更新:update table_name set field1=new-value1, field2=new-value2
like子句:select field1, field2,...fieldn table_name1, table_name2...
where field1 like condition1 [and [or]] filed2 = 'somevalue'
删除:delete from table_name [where clause]
排序:select field1, field2,...fieldn table_name1, table_name2...
order by field1, [field2...] [asc [desc]]
mysql 数据类型(数值、日期时间、字符串):
数值类型:
类型
大小
范围(有符号)
范围(无符号)
用途
tinyint
1 字节
(-128,127)
(0,255)
小整数值
smallint
2 字节
(-32 768,32 767)
(0,65 535)
大整数值
mediumint
3 字节
(-8 388 608,8 388 607)
(0,16 777 215)
int或integer
4 字节
(-2 147 483 648,2 147 483 647)
(0,4 294 967 295)
bigint
8 字节
(-9 233 372 036 854 775 808,9 223 372 036 854 775 807)
(0,18 446 744 073 709 551 615)
极大整数值
float
(-3.402 823 466 e+38,1.175 494 351 e-38),0,(1.175 494 351 e-38,3.402 823 466 351 e+38)
0,(1.175 494 351 e-38,3.402 823 466 e+38)
单精度
浮点数值
double
(1.797 693 134 862 315 7 e+308,2.225 073 858 507 201 4 e-308),0,(2.225 073 858 507 201 4 e-308,1.797 693 134 862 315 7 e+308)
0,(2.225 073 858 507 201 4 e-308,1.797 693 134 862 315 7 e+308)
双精度
decimal
对decimal(m,d) ,如果m>d,为m+2否则为d+2
依赖于m和d的值
小数值
日期和时间类型:
(字节)
范围
格式
date
3
1000-01-01/9999-12-31
yyyy-mm-dd
日期值
time
'-838:59:59'/'838:59:59'
hh:mm:ss
时间值或持续时间
year
1
1901/2155
yyyy
年份值
datetime
8
1000-01-01 00:00:00/9999-12-31 23:59:59
yyyy-mm-dd hh:mm:ss
混合日期和时间值
timestamp
1970-01-01 00:00:00/2037 年某时
yyyymmdd hhmmss
混合日期和时间值,时间戳
字符串类型
char
0-255字节
定长字符串
varchar
0-65535 字节
变长字符串
tinyblob
不超过 255 个字符的二进制字符串
tinytext
短文本字符串
blob
0-65 535字节
二进制形式的长文本数据
text
长文本数据
mediumblob
0-16 777 215字节
二进制形式的中等长度文本数据
mediumtext
中等长度文本数据
longblob
0-4 294 967 295字节
二进制形式的极大文本数据
longtext
极大文本数据
2、mysql数据用户
创建一个新的用户:cteate user 用户名 identified by '密码'
删除用户:drop user 用户名:
重命名用户名:rename user 原用户名 to 新用户名;
修改当前用户密码:set password=passowrd('新密码');
修改指定用户密码:set password for 用户名=password('新密码');
3、mysql权限管理
mysql权限控制系统控制一个用户是否能进行连接,以及连接以后能够针对哪些对象进行什么样的操作
mysql权限控制两个阶段
1、检查用户是否能够连接mysql
2、检查用户是否具有所执行动作的权限
mysql权限层级
1、全局层级
2、数据库层级
3、表层级
4、列层级
5、子程序层级
授予一个用户权限
grant all privileges on 层级 to 用户名@主机 identified by 密码
撤销一个用户权限
revoke all privileges from 用户名;
主机 (可以使用的形式)
1、所有主机 %
2、精确的主机或ip地址: www.it-team.cn 或 120.26.119.66
3、使用 * 通配符 *.it-team.cn
4、指定一个网段: 192.168.1.0/255.255.255.0
4、mysql备份恢复
mysql使用mysqldump工具备份恢复 (备份出来的是纯文本的sql文件,可以修改后作为其他数据库使用)
备份:mysqldump -u 用户名 -p 数据库名称 > 备份文件.sql
恢复:mysql -u 用户名 -p 数据库名称 < 备份文件.sql
数据库的编码
编码主要影响:1、数据库保存相同内容所占用的空间大小
2、数据库与客户端通信
mysql 数据库的默认编码是 latin1 可以通过修改配置文件编码格式
查看当前编码:
show variables like 'character_set%';
show variables like 'collation%’
查看支持编码命令 show character set;
创建数据库指定编码:
create database 数据库名
default character set utf8
default collate utf8_general_ci;
修改一个数据库的编码
alter database 数据库名 character set utf8 collate utf8_general_ci;