SQL语言

一、DDL数据库定义语言

1、登录mySQL

mysql -u"用户名" -p"密码" -h"登录地址

-h:默认为本机

示例:

2、查看当前存在的数据库

show databases;

示例:

3、创建数据库database

create database 数据库名称;

创建数据库db01

示例:

4、删除数据库database

drop database 数据库名称;

删除数据库db01

示例:

5、使用数据库

在数据库中创建/修改数据表时,需先使用数据库

use 数据库名称

使用数据库db01

示例:

二、DML数据库操作语言

数据表结构

一列为一个字段,一行为一条记录

1、查看当前数据库下存在的数据表

use 数据库名;

show tables;

示例:

新创建的数据库中未存在数据表

2、创建数据表

create table 数据表名称 (字段01 数据类型 约束,字段02 数据类型 约束...);

在数据库中创建数据表时,需要先使用数据库,但也可以用数据库.数据表的方式调用数据表

在数据库db01下创建数据表tab01

示例:

3、查询数据表结构

desc 数据表名称;

查询数据表tab01的结构

示例:

4、删除数据表

drop table 数据表名称;

删除数据表tab01

示例:

5、向数据表中插入数据

1、插入一条数据记录

insert into 数据表名称 values (数据01,数据02..);

向数据表插入数据记录时,数据记录中的数据需与数据表的字段一一对应,并且数据类型相同

向数据表tab01中插入一条数据记录

示例:

2、插入多条数据记录

也可以一次向数据表中插入多条数据记录,不同数据记录之间用逗号隔开

示例:

3、只向数据表的部分字段插入数据

insert into 数据表名称(字段01,字段02,...) values (数据01,数据02,...);

插入的数据也需和字段一一对应

示例:

只向部分字段插入数据时,本条数据记录,其余未插入数据的字段为NULL值

也可以向部分字段一次插入多条数据

示例:

6、删除数据表中的数据记录

delet from 表名 where 字段=数值01;

删除数据表tab01中字段name为张三的数据记录

示例:

7、修改数据表的结构

1、向数据表插入一个新字段

在数据表的末尾插入一个新字段

alter table 表名 add 字段 数据类型 约束;

向表tab01中插入height字段,数据类型为int

示例:

在数据表的开头插入一个字段,在末尾加上first即可

示例:

2、删除数据表中的一个字段

alter table 表名 drop 字段;

删除数据表tab01中的height字段

示例:

3、修改数据表中某个字段的数据类型

alter table 表名 modify 字段 数据类型;

修改数据表tab01中的id字段数据类型为varchar

示例:

4、修改字段名和字段数据类型

alter table 表名 change 字段名 新字段名 数据类型;

新数据类型可以和字段原数据类型相同

修改数据表tab01字段id的名字为id_number,数据类型为int

示例:

5、alter修改用户密码

alter user "用户名"@"登录主机" identified by "新密码";

或者还可以使用mysqladmin命令修改用户密码

三、DQL数据库查询语言

1、查询数据表中的所有数据记录

select * from 数据表名;

查询数据表tab01中的所有数据记录

示例:

2、只查询数据表中部分字段的数据记录

select 字段01,字段02,... from 数据表名;

查询数据表tab01中的name和age字段的数据记录

示例:

3、将数据记录按照某个字段进行降序排列输出

select * from 数据表名 order by 字段 desc;

将tab01的数据记录按照age字段进行降序输出

示例:

4、将数据记录按照某个字段进行升序排列输出

select * from 数据表名 order by 字段 asc;

将tab01的数据记录按照age字段进行升序输出

示例:

++条件查询++

5、查询字段数据在规定的取值范围内的数据记录

select * from 数据表名 where 字段 between 数值01 and 数值02;

查询字段age中数据在20--30范围内的数据记录

示例:

6、查询满足 字段01数据=数据01 并且 字段02数据=数据02 的数据记录

select * from 数据表名 where 字段01=数据01 AND 字段02=数据02;

查询 字段name=张三,并且 字段age=23 的数据记录

示例:

7、查询满足 字段01数据=数值01 或者 字段02数据=数据02 的数据记录

select * from 数据表名 where 字段01=数据01 OR 字段02=数据02;

查询 字段name=李四 或者 字段age=23 的数据记录

示例:

8、查询字段数据在规定的数值中的数据

select * from 数据表名 where 字段 in (数据1,数据2,...);

查询字段age的数值为21,23,24的数据记录

示例:

相比与between and, in 的数值范围更加精确

9、查询字段数据为NULL值的数据记录

select * from 数据表名 where 字段 is NULL;

查询字段mail中数据为NULL值的数据记录

示例:

四、DCL数据库控制语言

1、创建用户

create user "用户名"@"登录主机" identified by "密码";

创建本地用户user01,密码为MySQL@123

示例:

登录主机可以为本地也可以为其他远程服务器的IP地址

mysql的用户信息存放在数据库mysql的数据表user中,可以使用select查询用户信息

2、赋予用户权限

grant 权限(字段01,字段02) on 数据库.数据表 to "用户名"@"登录主机";

权限:

all:所有操作权限

create,创建权限

drop,删除权限

select,查询数据权限

insert,插入数据权限

update,更新数据权限

delete,删除数据权限 等....

数据库.数据表

示例:

*.*,对所有库、表、字段都有操作权限

mysql.*,只对mysql库及库中的表有操作权限

mysql.user,只对mysql库中的user表有操作权限

给用户user01赋予数据库db01中tab01表的所有权限

示例:

show grants for "用户名"@"登录主机"\G; 查看用户的所有权限

3、收回用户的权限

revoke 权限 on 数据库.数据表 from "用户名"@"登录主机";

收回用户user01对tab01表的所有权限

示例:

4、删除用户

drop user "用户名"@"登录主机";

删除本地用户user01

示例:

相关推荐
广州智造13 分钟前
OptiStruct实例:3D实体转子分析
数据库·人工智能·算法·机器学习·数学建模·3d·性能优化
技术宝哥3 小时前
Redis(2):Redis + Lua为什么可以实现原子性
数据库·redis·lua
学地理的小胖砸4 小时前
【Python 操作 MySQL 数据库】
数据库·python·mysql
dddaidai1235 小时前
Redis解析
数据库·redis·缓存
数据库幼崽5 小时前
MySQL 8.0 OCP 1Z0-908 121-130题
数据库·mysql·ocp
Amctwd5 小时前
【SQL】如何在 SQL 中统计结构化字符串的特征频率
数据库·sql
betazhou6 小时前
基于Linux环境实现Oracle goldengate远程抽取MySQL同步数据到MySQL
linux·数据库·mysql·oracle·ogg
lyrhhhhhhhh6 小时前
Spring 框架 JDBC 模板技术详解
java·数据库·spring
喝醉的小喵8 小时前
【mysql】并发 Insert 的死锁问题 第二弹
数据库·后端·mysql·死锁
付出不多8 小时前
Linux——mysql主从复制与读写分离
数据库·mysql