MySQL数据库分类、系统函数、创建数据库等详解
下文内容主要给大家带来MySQL数据库分类、系统函数、创建数据库等详解,这里所讲到的知识,与书籍略有不同,都是创新互联专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。
我们提供的服务有:成都网站制作、成都网站设计、微信公众号开发、网站优化、网站认证、满城ssl等。为成百上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的满城网站制作公司
<--目录-->
1)数据库分类
2)系统函数
3)创建数据库
4)选择数据库
5)数据类型
6)建表语句
7)插入数据
8)删用户删数据删库表
9)修改表数据
10)查询数据
11)用户授权
12)show查看当前所有库表、建库表语句、用户权限
13)desc查看表结构
14)复制表结构
15)字段增删改
16)查看帮助
【数据库分类】
在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
【数据类型】
常用类型:
整数类型
int
浮点数类型
float
字符串类型
char
varchar
【建表语句】
#创建表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的行
delete from test; #删除test表中的所有数据
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 wsyht@localhost identified by 'wsyht'; #授权用户,主机指客户端登陆的主机,这里写localhost允许在本机登陆
grant all privileges on *.* to peter@localhost identified by 'peter'; #或这样授权用户,创建用户和授权一起操作
create user wsyht@localhost identified by 'wsyht'; #先创建用户(语句详情意思可看MySQL简介文档)
grant all on *.* to wsyht@localhost; #再授权用户
create user wsyht@'10.0.0.%' identified by 'wsyht'; #创建远程登陆账户
grant all on *.* to wsyht@'10.0.0.%' identified by 'wsyht'; #创建并授权远程登陆账户法1
grant all on *.* to test@'10.0.0.0/255.255.255.0' identified by 'test123'; #创建并授权远程登陆账户法2
revoke insert on *.* from wsyht@localhost; #去除他所有库和所有表的insert权限,要先查看他对哪个库和哪个表有权限,然后再对他授权的库和表进行去除权限操作
revoke all privileges,grant option from 'wsyht@localhost'; #回收用户的所有权限
【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 wsyht@localhost; #查看权限
GRANT SELECT ON *.* TO 'wsyht'@'%' IDENTIFIED BY PASSWORD '123456' #授权wsyht只读权限
【desc查看表结构】
use wsyht #进入wsyht库
desc student; #查看student表结构
【复制表结构】
create table 新表 select *from 旧表 #复制旧表的表结构及旧表的数据到新表
create table 新表 select *from 旧表 where 1=2 #只复制旧表的表结构到新表
insert into 新表 select * from 旧表 #复制旧表的数据到新表(假设两个表结构一样)
insert into 新表 字段1,字段2,....... select 字段1,字段2,...... from 旧表 #复制旧表的数据到新表(假设两 个表结构不一样)
【字段增删改】
#增字段
alter table test add sex char(4); #在test表添加字段sex,默认添加在最后一行
alter table test add qq varchar(15) first; #在第一行添加字段qq
alter table test add age int(3) after name; #在test表name字段后面添加age字段
alter table t1 add age int (3),add name varchar(11); #增加表中age和name两个字段
#改字段
alter table t1 modify deptno varchar(20); #更改deptno字段属性为varchar(20)
alter table t1 change age ages varchar(20) not null; #只更改表中age字段名为ages;
alter table t1 change age ages varchar(40) not null; #同时修改字段名和属性,字段名改为ages,属性改为varchar(40)
#修改字段顺序
alter table t1 modify 属性名1 数据类型 first | after 属性名2
上述语句中,t1参数表示所要修改表的名字,“属性名1”参数表示所要调整顺序的字段名,“first”参数表示要将参数调整到表的第一个位置,“after 属性名2”参数表示将字段调整到属性名2字段位置之后
alter table t1 modify ages varchar(40) first #把ages字段放到第一位
alter table AS_DbSource change BackupIPs BackupIPs varchar(45) after IPs;
把BackupIPs字段设置在IPs字段后面
#删字段
alter table t1 drop deptno; #删除deptno字段
alter table t1 drop column age,drop column name; #连续删除age和name两个字段
【help查看帮助】
mysql> help show
mysql> help select
mysql> help alter
mysql> help insert
mysql> help update
对于以上关于MySQL数据库分类、系统函数、创建数据库等详解,如果大家还有更多需要了解的可以持续关注我们创新互联的行业推新,如需获取专业解答,可在官网联系售前售后的,希望该文章可给大家带来一定的知识更新。
网页题目:MySQL数据库分类、系统函数、创建数据库等详解
URL分享:http://scyanting.com/article/ggcsii.html