MySQL(二)—— SQL语句基本操作

目录

SQL基本操作

库操作:对数据库的增删改查.

查看数据库

更新数据库

删除数据库

表操作

新增数据表

查看数据表

修改数据表

删除数据表

数据操作

新增数据

查看数据

更新数据

删除数据


SQL: Structured Query Language, 结构化查询语言(数据以查询为主: 99%是在进行查询操作)

SQL分为三个部分

DDL: Data Definition Language, 数据定义语言, 用来维护存储数据的结构(数据库,表), 代表指令: create, drop, alter等

DML: Data Manipulation Language, 数据操作语言, 用来对数据进行操作(数据表中的内容), 代表指令: insert, delete,update等: 其中DML内部又单独进行了一个分类: DQL(Data Query Language: 数据查询语言, 如select)

DCL: Data Control Language, 数据控制语言, 主要是负责权限管理(用户), 代表指令: grant,revoke等

SQL是关系型数据库的操作指令, SQL是一种约束,但不强制(类似W3C): 不同的数据库产品(如Oracle,mysql)可能内部会有一些细微的区别.

SQL基本操作

基本操作: CRUD

将SQL的基本操作根据操作对象进行分类 ,分为三类: 库操作, 表操作(字段), 数据操作

库操作:对数据库的增删改查.

新增数据库

基本语法: Create database 数据库名字 [库选项];

库选项: 用来约束数据库, 分为两个选项

字符集设定: charset/character set 具体字符集(数据存储的编码格式): 常用字符集: GBK和UTF8

校对集设定: collate 具体校对集(数据比较的规则)

-- 创建数据库
create database mydatabase charset utf8;

-- 创建关键字数据库 会报错
create database database charset utf8;
-- 解决方法:使用反引号
create database `database` charset utf8;

-- 创建中文数据库 会报错
create database 中国 charset utf8;
create database `中国` charset utf8;

-- 解决方案: 告诉服务器当前中文的字符集是什么
set names gbk;
create database 中国 charset utf8;

查看数据库

1. 查看所有数据库: show databases;

-- 查看所有数据库
show databases;

2. 查看指定部分的数据库: 模糊查询

Show databases like ‘pattern’; -- pattern是匹配模式

%: 表示匹配多个字符         _: 表示匹配单个字符

-- 创建数据库
create database informationtest charset utf8;
-- 查看以information_开始的数据库: _需要被转义
show databases like 'information\_%';
show databases like 'information_%';	-- 相当于information%

3. 查看数据库的创建语句: show create database 数据库名字;

-- 查看数据库创建语句
show create database mydatabase;
show create database `database`;	-- 关键字需要使用反引号

更新数据库

数据库名字不可以修改.

数据库的修改仅限库选项: 字符集和校对集(校对集依赖字符集)

Alter database 数据库名字 [库选项];

Charset/ character set [=] 字符集

Collate 校对集

-- 修改数据库informationtest的字符集
alter database informationtest charset GBK;

删除数据库

Drop database 数据库名字;

-- 删除数据库
drop database informationtest;

表操作

表与字段是密不可分的.

新增数据表

Create table [if not exists] 表名(

字段名字 数据类型,

字段名字 数据类型 -- 最后一行不需要逗号

)[表选项];

If not exists: 如果表名不存在,那么就创建,否则不执行创建代码: 检查功能

表选项: 控制表的表现

字符集: charset/character set 具体字符集; -- 保证表中数据存储的字符集

校对集: collate 具体校对集;

存储引擎: engine 具体的存储引擎(innodb和myisam)

-- 任何一个表的设计都必须指定数据库.
-- 创建表
create table if not exists mydatabase.student(	-- 显示的将student表放到mydatabase数据库下
name varchar(10),
gender varchar(10),
number varchar(10),
age int
)charset utf8;

-- 进入数据库
use mydatabase;

-- 创建表
create table class(
name varchar(10),
room varchar(10)
)charset utf8;

查看数据表

数据库能查看的方式,表都可以查看.

1. 查看所有表: show tables;

-- 查看所有表
show tables;

2. 查看部分表: 模糊匹配: show tables like ‘pattern’;

-- 查看以s结尾的表
show tables like '%s';

3. 查看表的创建语句: show create table 表名;

-- 查看表创建语句
show create table student\g	-- \g ==== ;
show create table student\G	-- 将查到的结构旋转90度变成纵向

4. 查看表结构: 查看表中的字段信息

-- 查看表结构 三条语句效果一样
desc class;
describe class;
show columns from class;

修改数据表

表本身存在, 还包含字段: 表的修改分为两个部分: 修改表本身和修改字段

修改表本身

表本身可以修改: 表名和表选项

修改表名: rename table 老表名 to 新表名;

-- 重命名表: student表 -> my_student(取数据库名字前两个字母)
rename table student to my_student;

修改表选项: 字符集,校对集和存储引擎

Alter table 表名 表选项 [=] 值;

-- 修改表选项: 字符集
alter table my_student charset = GBK;

修改字段

字段操作很多: 新增, 修改, 重名, 删除

新增字段

Alter table 表名 add [column] 字段名 数据类型 [列属性] [位置];

位置: 字段名可以存放表中的任意位置

First: 第一个位置

After: 在哪个字段之后: after 字段名; 默认的是在最后一个字段之后

-- 给学生表增加ID放到第一个位置
alter table my_student
add column id int
first;	-- mysql会自动寻找分号: 语句结束符

修改字段: 修改通常是修改属性或者数据类型

Alter table 表名 modify 字段名 数据类型 [属性] [位置];

-- 将学生表中的number学号字段变成固定长度,且放到第二位(id之后)
alter table my_student
modify number char(10) after id;

重命名字段

Alter table 表名 change 旧字段 新字段名 数据类型 [属性] [位置];

-- 修改学生表中的gender字段为sex
alter table my_student
change gender sex varchar(10);

删除字段

Alter table 表名 drop 字段名;

-- 删除学生表中的年龄字段(age)
alter table my_student drop age;

删除数据表

Drop table 表名1,表名2...; -- 可以一次性删除多张表

-- 删除数据表
drop table class;

数据操作

新增数据

有两种方案

方案1: 给全表字段插入数据, 不需要指定字段列表: 要求数据的值出现的顺序必须与表中设计的字段出现的顺序一致: 凡是非数值数据,都需要使用引号(建议是单引号)包裹

Insert into 表名 values(值列表)[,(值列表)]; -- 可以一次性插入多条记录

-- 插入数据
insert into my_student values(1,'itcast0001','Jim','male'),
(2,'itcast0002','Hanmeimei','female');

方案2: 给部分字段插入数据,需要选定字段列表: 字段列表出现的顺序与字段的顺序无关; 但是值列表的顺序必须与选定的字段的顺序一致.

Insert into 表名 (字段列表) values (值列表)[,(值列表)];

-- 插入数据: 指定字段列表
insert into my_student(number,sex,name,id) values
('itcast0003','male','Tom',3),
('itcast0004','female','Lily',4);

查看数据

Select */字段列表 from 表名 [where条件];

查看所有数据

-- 查看所有数据
select * from my_student;

查看指定字段,指定条件的数据.

-- 查看指定字段,指定条件数据
select id,number,sex,name from my_student where id = 1;	-- 查看满足id为1的学生信息

更新数据

Update 表名 set 字段 = 值 [where条件]; -- 建议都有where: 要不是更新全部

-- 更新数据
update my_student set sex  = 'female' where name = 'jim';

删除数据

删除是不可逆的: 谨慎删除

Delete from 表名 [where条件];

-- 删除数据
delete from my_student where sex = 'male';

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值