数据库的基本操作
数据库与数据表的管理
数据库与数据表的基本结构
MySQL服务
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a5mxu177-1639733593593)(C:\Users\Doctor Jin\AppData\Roaming\Typora\typora-user-images\image-20211216193246237.png)]
数据库的基本操作
(1)查看已有的库
SHOW DATABASES;
(2)创建库(可指定字符集)
CREATE DATABASE 库名[CHARACTER SET某一字符集];
(3)查看创建库的语句
SHOW CREATE DATABASE db3;
(4)查看当前所在库
SELECT DATABASE ();
(5)切换库
USE库名;
(6)查看库
show tables;
(7)删除库
drop database 库名;
数据库的命名规则
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LJSwwH1M-1639733593595)(C:\Users\Doctor Jin\AppData\Roaming\Typora\typora-user-images\image-20211217110004540.png)]
数据表的管理
数据表的基本操作
(1)创建表
USE db2;
CREATE TABLE t2 (
id int,
name char(15),
age int
)CHARACTER SET utf8;
(2)查看表的字符集
show create table t1;
(3)查看表结构
DESC 表名;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fHD8NR3R-1639733593595)(C:\Users\Doctor Jin\AppData\Roaming\Typora\typora-user-images\image-20211217111817783.png)]
(4)删除表
DROP TABLE T1;
表记录与表字段的管理
表记录的管理——增删改查
1、插入 (INSERT)
插入完整的记录
INSERT INTO 表名 VALUES (值1),(值2),…;
插入指定字段的记录
INSERT INTO 表明(字段名1,字段名2…)VALUES (值1),(值2),…;
查询表的所有信息
SELECT * FROM student WHERE ssex='女';
*代表所有的字段信息
查看表中的指定字段信息
SELECT sname,class FROM student WHERE ssex='女';
更新语句
UPDATE student SET class='95031'WHERE sname='王芳';
表字段的管理——增删改查
1、 添加字段 (默认添加最后一个) (ADD)
ALTER TABLE student ADD addr VARCHAR(90); 添加到最后一列 默认
ALTER TABLE student ADD id INT FIRST; 添加到第一列
ALTER TABLE student ADD phone VARCHAR(30) AFTER ssex; 添加到某一字段后面
2、 删除字段 (DROP)
ALTER TABLE student DROP addr; 添加字段的时候必须指定数据类型,删除时不需要指定
3、修改数据类型 (MODIFY)
ALTER TABLE student MODIFY sbirthday DATE;
字段名不变只修改字段类型
数据类型与类型选择
一、数值类型(整型、浮点型)
整型
(1)int——大整型
4个字节(32位)
(2)tinyint——微小整型
1个字节(8位)
A 有符号(signed) -128→+127
B无符号(unsigned)0→255
(3)smallint——小整型
2字节(16位)
(4)bigint——极大整数型
8字节(64位)
浮点型
(1)float
用法 字段名 float (m,n)
其中,m为总位数(整数位数+小数位数),n小数位数
致命限制:最多西安市7个有效位 即m最大为73
(2)decimal
用法 字段名 float (m,n)
其中,m为总位数(整数位数+小数位数),n小数位数
限制:最多显示28个有效位
字符类型
1、char
用法:char(定长)
宽度取值范围1→255
2、varchar(变长)
宽度取值范围 1→65535
枚举类型
1、单选
用法 字段名 enum (值1,值2)
2、多选
字段名set(值1,值2)
日期时间类型
运算符操作
注意在筛选条件时,and 和 or 中间不能存在,
SELECT*FROM hero WHERE country='魏国' or country='蜀国'; √
SELECT*FROM hero WHERE country='魏国', or country='蜀国';×
use db1;
create table hero(
id int,
name char(20),
attack int unsigned,
defense tinyint unsigned,
sex enum("男","女"),
country varchar(20)
)default charset=utf8;
insert into hero values
(1,'诸葛亮',120,20,'男','蜀国'),
(2,'司马懿',119,25,'男','魏国'),
(3,'关羽',188,60,'男','蜀国'),
(4,'赵云',200,66,'男','魏国'),
(5,'孙权',110,20,'男','吴国'),
(6,'貂蝉',666,10,'女','魏国'),
(7,null,1000,99,'男','蜀国'),
(8,'',1005,88,'女','蜀国'),
(9,'刘备',146,90,'男','蜀国');
插入表格如上所示
# 2.4节————运算符操作练习
# 1.数值比较/字符比较
# (1)查找攻击力高于150的英雄的名字和攻击值
SELECT name,attack FROM hero WHERE attack>150;
# (2)将赵云的攻击力设置为360,防御力设置为68
UPDATE hero SET attack=360,defense=68 WHERE name="赵云";
SELECT * FROM hero WHERE name="赵云";
# 2.逻辑比较
# (1)查找攻击力高于200的魏国英雄的名字和攻击值
SELECT name,attack FROM hero WHERE attack>200 AND country="魏国";
# (2)查找所有蜀国和魏国的英雄信息
SELECT * FROM hero WHERE country="蜀国" OR country="魏国";
# 3.范围内比较
# (1)查找攻击力介于100-200之间的蜀国英雄信息
SELECT * FROM hero WHERE attack BETWEEN 100 AND 200 AND country="蜀国";
# (2)查找蜀国和吴国以外的国家的女英雄信息
SELECT * FROM hero WHERE country NOT IN ("蜀国","吴国") AND sex="女";
# (3)查找id为1,3或5的蜀国英雄和貂蝉的信息
SELECT * FROM hero WHERE (id IN(1,3,5) AND country="蜀国") OR name="貂蝉";
# 4.匹配空、非空
# (1)查找姓名为空值(NULL)的英雄信息
SELECT * FROM hero WHERE name IS NULL;
# (2)查找姓名为非空值的英雄信息
SELECT * FROM hero WHERE name IS NOT NULL;
# (3)查找姓名为‘’的英雄信息
SELECT * FROM hero WHERE name='';
# 5.模糊比较
SELECT name FROM hero WHERE name LIKE '_%_';
SELECT name FROM hero WHERE name LIKE '%';
SELECT name FROM hero WHERE name LIKE '___';
SELECT name FROM hero WHERE name LIKE '赵%';
SHOW TABLES LIKE 't%';