数据库的基础知识
1.数据库与表的基本结构
2.数据库的管理
1). 数据库的基本操作
- 查看已有库
show databases ;
- 创建库(可指定字符集)
create database 库名[character set 某一字符集]; 例如 utf-8
- 查看创建库的语句(查看字符集)
SHOW CREATE DATABASE 库名;
- 查看当前所在库
SELECT DATABASE();
- 切换库
USE 库名
- 查看库中已有表
SHOW TABLES;
- 删除库
DROP DATABASE 库名;
2). 库名的命名规则
- 数字,字母,下划线组成
- 库名唯一,不能重复
- 不能使用mysql关键字和特殊字符
- 一般使用小写
3.数据表的管理
1). 数据表的基本操作
- 创建表(可指定字符集)
CREATE TABLE 表名(字段名 数据类型,字段名 数据类型,.......字段名 数据类型)[CHARACTER SET 某一字符集];
- 查看已有表的字符集
SHOW CREATE TABLE 表名;
- 查看表结构
DESC 表名;
- 删除表
DROP TABLE 表名;
4.表记录管理 ——增删改查
- 插入(INSERT)
- 插入完整记录
INSERT INTO 表名 VALUES(值1),(值2),.......;
- 插入指点字段
INSERT INTO 表名(字段名1,字段名2,...) VALUES(值1),(值2),.......;
- 查询(SELECT)
- 查看表的所有信息
SELECT * FROM 表名 [WHERE 条件];
- 查看表中指定字段的信息
SELECT 字段名1,字段名2,..... FROM 表名[WHERE 条件];
- 删除(DELETE)
DELETE FROM 表名 WHERE 条件;
注意:若不加WHERE条件,表中所有记录会被清空
- 更新(UPDATE)
UPDATE 表名 SET 字段名1=值1,字段名2=值2,....WHERE 条件;
注意:一定要加WHERE条件,否则会将表中记录全部修改
5.表字段管理 ——增删改查
- 添加字段(ADD)
ALTER TABLE 表名 ADD 字段名 数据类型; 添加到最后一列(默认)
ALTER TABLE 表名 ADD 字段名 数据类型 FIRST; 添加到第一列
ALTER TABLE 表名 ADD 字段名 数据类型 AFTER 字段名; 添加某一字段后面
- 删除字段(DROP)
ALTER TABLE 表名 DROP 字段名;
注意;添加字段时必须指定数据类型,删除字段时无需指定数据类型
- 修改字段的数据类型(MODIFY)
ALTER TABLE 表名 MODIFY 字段名 新数据类型;
注意;添加字段名不变,只修改字段的数据类型
- 表重命名(RENAME)
ALTER TABLE 表名 RENAME 新表名;
注意;添加字段时必须指定数据类型,删除字段时无需指定数据类型
- 表字段重命名(CHANGE)
ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型;
6.运算符操作
- 运算符集锦
- 运算符操作例题
2.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.2逻辑比较
1)查找攻击力高于200的魏国英雄的名字和攻击值
SELECT name,attack FROM hero WHERE attack>200 and country="魏国";
2)查找所有蜀国和魏国的英雄信息
SELECT * FROM hero WHERE contry="魏国" or country="蜀国";
2.3范围内比较
1)查找攻击力介于100-200之间的蜀国英雄信息
SELECT * FROM hero WHERE attack BETWEEN 100 AND 200 countury="蜀国";
2)查找蜀国和吴国以外的国家的女英雄信息
SELECT * FROM hero WHERE country OUT IN("蜀国","吴国") AND sex="女";
3)查找id为1,3,5的蜀国英雄和貂蝉的信息
SELECT *FROM hero WHERE id IN("1","3","5") AND country="蜀国" or name="貂蝉";
2.4 匹配空,非空
1)查找姓名为空值(NULL)的英雄信息
SELECT * FROM hero WHERE name IS NULL;
2)查找姓名为非空的英雄信息
SELECT * FROM hero WHERE name IS ONT NULL;
3)查找姓名为“”的英雄信息。(这里的“” 代表是空的字符串)
SELECT * FROM hero WHERE name="";
2.5模糊比较
’ _ ’ :下划线匹配一个字符
‘%’ :百分号匹配零个或者多个字符
SELECT name FROM hero WHERE name LIKE '_%_' #name至少两个字符
SELECT name FROM hero WHERE name LIKE '%' #name至少有零个字符
SELECT name FROM hero WHERE name LIKE '___' #name至少有三个字符
SELECT name FROM hero WHERE name LIKE '赵%' #name第一个字符是'赵'
SHOW TABLES LIKE 't%' # 首字母为't'的表