温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

MySQL数据库分类、系统函数、创建数据库等详解

发布时间:2020-04-26 14:59:10 来源:亿速云 阅读:385 作者:三月 栏目:数据库

下文内容主要给大家带来MySQL数据库分类、系统函数、创建数据库等详解,这里所讲到的知识,与书籍略有不同,都是亿速云专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。

<--目录-->

1)数据库分类

2)系统函数

3)创建数据库

4)选择数据库

5)数据类型

6)建表语句

7)插入数据

8)删用户删数据删库表

9)修改表数据

10)查询数据

11)用户授权

12)show查看当前所有库表、建库表语句、用户权限

13)desc查看表结构

14)复制表结构

15)字段增删改

16)查看帮助

MySQL数据库分类、系统函数、创建数据库等详解

【数据库分类】

在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数据库分类、系统函数、创建数据库等详解,如果大家还有更多需要了解的可以持续关注我们亿速云的行业推新,如需获取专业解答,可在官网联系售前售后的,希望该文章可给大家带来一定的知识更新。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI