4.2 数据库基础
2.1 SQL语言
2.1.1 分类
- DDL(Data Definition Language)
数据定义语言,用来定义数据库对象:库、表、列等 - DML(Data ManipulationLanguage)
数据操作语言,用来定义数据库记录(数据)增删改 - DCL(Data Control Language)
数据控制语言,用来定义访问权限和安全级别。 - DQL(Data Query Language)
数据查询语言,用来查询记录(数据)查询。
2.1.1.1 DDL
/**
*操作数据库
*/
//1.创建
//create database 数据库名
CREATE DATABASE mydb1;
//create database 数据库名 character set 编码方式
CREATE DATABASE mydb2 character SET GBK;
//create database 数据库名 set 编码方式 collate 排序规则
CREATE DATABASE mydb3 character SET GBK COLLATE gbk_chinese_ci;
//2.查看
//查看当前数据库服务器中的所有数据库
show databases;
//查看前面创建的mydb2数据库的定义信息
Show CREATE DATABASE mydb2;
//3.修改
//查看服务器中的数据库,并把mydb2的字符集修改为utf8;
ALTER DATABASE mydb2 character SET utf8;
//4.删除
DROP DATABASE mydb3;
//5.其他
//查看当前使用的数据库
Select database();
//切换数据库: use 数据库名
use mydb2;
/**
/*操作表
*/
//1.创建表(语法)
CREATE TABLE 表名(
列名1 数据类型 [约束],
列名2 数据类型 [约束],
列名n 数据类型 [约束]
);
//说明:表名,列名是自定义,多列之间使用逗号间隔,最后一列的逗号不能写,[约束]表示可有可无
CREATE TABLE Employees(
id INT ,
age INT ,
first VARCHAR(255),
last VARCHAR(255)
);
//2.删除表
DROP TABLE table_name;
//3.当前数据库中的所有表
show tables;
//4.查看表的字段信息
DESC employee;
//5.修改表
//5.1修改列属性
ALTER TABLE employee MODIFY job varchar(60);
ALTER TABLE employee change job job varchar(60);
//5.2修改列名
ALTER TABLE user CHANGE name username varchar(100);
//5.3删除列,一次删除一列
ALTER TABLE employee DROP image;
//5.4 修改表名
Alter TABLE user rename users;
//5.5 查看建表细节
show create talbe user;
//5.6 修改表的字符集
alter table user character set gbk;
2.1.1.2 DML
- 在mysql中,字符串类型和日期类型都要用单引号括起来。
- DELETE 删除表中的数据,表结构还在;删除后的数据可以找回;一行行删
- TRUNCATE 删除是把表直接DROP掉,然后再创建一个同样的新表;全删,执行速度快。
2.1.1.3 DCL
//1.创建用户:
//create user 用户名@ip identified by 密码
create user 'test1'@'localhost' identified by '123'
//create user 用户名@'%' identified by 密码,任意ip均可登录
create user 'test2'@'%' identified by '111'
//2.用户授权
//grant 权限1.权限2... on 数据库名.* to 用户名@ip 给指定用户授予指定权限
grant insert,delete on mydb2.* to 'test1'@'localhost'
//grant all on *.* to 用户名@ip 给指定用户授予所有权限
grangt all on *.* to 'test2'@'localhost'
//3.权限查询
show grants for 'test1'@'%';
//4.撤销权限
remove select on *.* from 'test2'@'localhost';
//5.删除用户
drop user 'test'@'localhost';
2.1.1.4 DQL
- 简单查询、条件查询、模糊查询、字段控制查询(去除重复值disitnct,别名设置)、排序(默认升序。升序:asc,降序:desc)、集合函数、分组查询(having子句、多列分组)、LIMIT(分页查询)
having和where区别
- having是在分组后对数据进行过滤,where是在分组前对数据进行过滤
- having后面可以使用分组函数(统计函数).where后面不可以使用分组函数。
welcome~the interesting soul

浙公网安备 33010602011771号