<--目录-->
1)数据库分类
2)系统函数
3)创建数据库
4)选择数据库
5)建表语句
6)插入数据
7)删用户删数据删库表
8)修改表数据
9)查询数据
10)用户授权
11)show查看当前所有库表、建库表语句、用户权限
12)desc查看表结构
【数据库分类】
在MySQL软件中,数据库可以分为系统数据库和用户数据库两大类
1、系统数据库
系统数据库是指装完MySQL服务器后,会附带的一些数据,如下图所示
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| ryzc_data |
| test |
+--------------------+
5 rows in set (0.00 sec)
information_schema: 主要存储系统中的一些数据库对像信息,如用户信息,列信息,权限信息,字符 集信息和分区信息等
performance_schema: 主要存储数据库服务器性能参数
mysql:主要存储系统的用户权限信息
test:该数据库为MySQL数据库管理系统自动创建的测试数据库,任何用户都可以使用
2、用户数据库
用户数据库是用户根据实际需求来创建的数据库,如下图,其中userdatabase数据库属于用户数据库
【系统函数】
version() #返回系统库的版本号
databasee() #返回当前系统库名
user() #返回当前用户
#查询多个
mysql> select user(),database(),version();
#查询单个
mysql> select user();
【创建数据库】
create database database_name
上述语句中database_name参数表示所要创建的数据库的名字
mysql> create database databasetest;
Query OK, 1 row affected (0.00 sec)
Query OK:表示SQL语句执行成功
1 row affected :表示操作只影响了数据中一行的记录
0.00 sec:表示操作执行的时间
create database wsyht_gbk default character set gbk collate gbk_chinese_ci; #创建库wsyht_gbk并设置默认字符集gbk
create database wsyht_utf8 default character set utf8 collate utf8_general_ci; #同理指定utf8字符集
【选择数据库】
mysql> use mysql
【建表语句】
#创建表stdent
id字段最少要填四位整数,不能位空
name字段为字符串,最少填20位,不能为空
use wsyht
create table student(
id int(4) not null,
name char(20) not null,
age tinyint(2) NOT NULL default ‘0‘,
dept varchar(16) default NULL
);
【插入数据】
insert into student(id,name) values(1,‘wsyht‘);
insert into student values(4,‘jack‘,25,‘abc‘); #按照顺序插值
insert into student values(5,‘dock‘,25,‘abc‘),(6,‘tom‘,26,‘cad‘); #插入两个值
【删用户删数据删库表】
#删库
drop database wsyht; #删除wsyht数据库
drop user ‘root‘@‘localhost‘ #删除系统多余账号,删除user表root用户主机名为localhost
#删用户
delete from mysql.user where user=‘root‘ and host=‘localhost‘; #删除root用户
flush privileges; #删除用户需要刷新权限
#删表
drop table student;
#删数据
delete from test where id=1; #删除test表id号等于1的行
delete from test where id>3; #删除test表id号等于3的行
truncate table test; #直接清空整个表,test是表名
truncate清空物理文件 delete逻辑清除按行删
【修改表数据】
update t1 set name=‘jack‘ where id=1; #更新表t1的name字段为jack,条件为id=1
rename table test to t1; #把test表改名为t1;
alter table t1 rename to test; 把t1表改名为test
【查询数据】
select *from student; #查询表所有数据的值
select id, name from student; #查询id name字段的值
select id,name from student limit 2; #只查询id,name字段2行数据的值
select id,name from student where id=1; #条件查询,查询id=5的值
select id,name from student where name=‘tom‘; #字符患查询要加引号
select id,name from student where name=‘tom‘ and id=‘6‘; #两边都要成立
select id,name from student where name=‘tom‘ or id=‘8‘; #一边成立即可
select id,name from student where id>3 and id<6; #范围内查询
select id,name from student order by id; #排序id列,不加默认正向排序
select id,name from student order by id asc; #排序id列,加asc正向排序
select id,name from student order by id desc; #排序id列,加desc反向排序,需要指定列
select user,host,password from mysql.user order by user asc; #user列升序排序
select user,host,password from mysql.user order by user desc; #user列倒序排序
【用户授权】
#用户授权之后需要flush privileges刷新权限
grant all on db1.* to [email protected] identified by ‘wsyht‘; #授权用户,主机指客户端登陆的主机,这里写localhost允许在本机登陆
grant all privileges on *.* to [email protected] identified by ‘peter‘; #或这样授权用户,创建用户和授权一起操作
create user [email protected] identified by ‘wsyht‘; #先创建用户(语句详情意思可看MySQL简介文档)
grant all on *.* to [email protected]; #再授权用户
create user [email protected]‘10.0.0.%‘ identified by ‘wsyht‘; #创建远程登陆账户
grant all on *.* to [email protected]‘10.0.0.%‘ identified by ‘wsyht‘; #创建并授权远程登陆账户法1
grant all on *.* to [email protected]‘10.0.0.0/255.255.255.0‘ identified by ‘test123‘; #创建并授权远程登陆账户法2
revoke insert on *.* from [email protected]; #去除他所有库和所有表的insert权限,要先查看他对哪个库和哪个表有权限,然后再对他授权的库和表进行去除权限操作
revoke all privileges,grant option from ‘[email protected]‘; #回收用户的所有权限
【show查看信息】
#查看当前所有库
show databases; #显示所有数据库
show databases like ‘%wsyht%‘; #显示所有含有wsyht名字的库
#查看库中的所有表
show tables from d1; #显示d1库有多少表
show tables; #显示当前库中所有的表
#查看建库建表语句
show create database wsyht_utf8; #显示创建的数据库的字符集
show create database wsyht_gbk\G; #加\G换行显示,不用加分号,查看已建库的语句
show create table student\G; #查看已建表的语句
#查看权限
show grants for [email protected]; #查看权限
【desc使用】
查看建立表的结构
use wsyht #进入wsyht库
desc student; #查看student表结构