居家旅行外出常背
一、数据库的简单增删改查语句
1.为什么要学数据库?(为了找工作…( Ĭ ^ Ĭ )泪目)
- 找到工作才对得起秃头
2.建库
-
创建一个数据库,它的语言类型为utf-8
标准语法:CREATE DATABASE 数据库名称; 例:CREATE DATABASE dou1 CHARACTER SET utf8
创造一个存在的数据库会报错,可以判断是否已经有这个数据库,如果不存在则创建
标准语法:CREATE DATABASE IF NOT EXISTS 数据库名称; 例:CREATE DATABASE IF NOT EXISTS dou2;
练习:创建dou3数据库、如果不存在则创建,指定字符集为gbk
CREATE DATABASE IF NOT EXISTS dou3 CHARACTER SET gbk;
查询所有数据库
SHOW DATABASES;
查询当前使用的数据库
SELECT DATABASE();
-
对数据库的简单操作
Update(对数据库进行修改,主要为修改数据库的字符集)
标准语法:ALTER DATABASE 数据库名称 CHARACTER SET 字符集名称; 例:ALTER DATABASE dou3 CHARACTER SET UTF-8; 可以通过查看数据库字符集看看是否修改成功 例:SHOW CREATE DATABASE dou3;
delete(删除数据库,不想用这个数据库就删除呗,不要怕多建)
标准语法:DROP DATABASE 数据库名称; 例:DROP DATABASE dou1; 同理,删除一个不存在的数据库会报错,可用判断 DROP DATABASE IF EXISTS dou1;
SELECT DATABASE();
如果是你想要用的数据库那就直接操作, 如果不是就使用想使用的数据库
标准语法:USE 数据库名称; 例:USE dou;假设我们用的是一个已经创好的名为dou的数据库
-
二、数据表的增删改查
相信大家经过上面的学习后对数据库有了基本的认识,那让我们简单的认识下里面的语法吧
1 . 创建数据库
CREATE DATABASE IF NOT EXISTS dou;
2. 创建数据表
(CREATE)创建
标准语法:CREATE TABLE 表名(
列名1 数据类型1,
列名2 数据类型2,
....
列名n 数据类型n
);
例:我们创建一个名为user的表
CREATE TABLE user(
id INT,
NAME VARCHAR(30),
birthday DATE
);
表的复制也使用CREATE
标准语法:CREATE TABLE 表名 LIKE 被复制的表名;
例:CREATE TABLE USER LIKE users;
(ALTER)修改
修改表的名字
标准语法:ALTER TABLE 表名 RENAME TO 新的表名;
例:ALTER TABLE user RENAME TO users;
修改表的字符集
标准语法:ALTER TABLE 表名 CHARACTER SET 字符集名称;
例:ALTER TABLE users CHARACTER SET gbk;
为表添加一列
标准语法:ALTER TABLE 表名 ADD 列名 数据类型;
例:ALTER TABLE users ADD age INT;
修改列的数据类型
标准语法:ALTER TABLE 表名 MODIFY 列名 新数据类型;
例:ALTER TABLE users MODIFY age VARCHAR(20);
修改列名称和数据类型
标准语法:ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
例:ALTER TABLE users CHANGE age address VARCHAR(10);
(DROP)删除
删除数据表(判断,如果存在则删除)
标准语法:DROP TABLE IF EXISTS 表名;
例:DROP TABLE IF EXISTS USER;
(DESC)查看
查询表的详细信息
标准语法:DESC 表名;
例:DESC users;
3. 数据的操作
(INSERT )插入
新增一条数据
标准语法:INSERT INTO 表名(列名1,列名2,...) VALUES (值1,值2,...);
例::INSERT INTO users (id,NAME,birthday,address) VALUES(1,'企鹅','2000.01.01','南极');
默认给全部列添加数据
标准语法:INSERT INTO 表名 VALUES (值1,值2,值3,...);
例:INSERT INTO users VALUES(2,'水獭','2000.01.01','北极');
批量添加数据
标准语法:INSERT INTO 表名 VALUES (值1,值2,值3,...),(值1,值2,值3,...),(值1,值2,值3,...);
例:INSERT INTO users VALUES(3,'水獭1','2000.01.01','北极'),(4,'水獭2','2000.01.01','北极'),
(5,'水獭3','2000.01.01','北极');
指定列添加数据
单行添加:
例:INSERT INTO users (id,NAME) VALUES (6,'水獭4');
批量添加:
例:INSERT INTO users (id,NAME) VALUES (7,'水獭5'),(8,'水獭6'),(9,'水獭7');
好,先添加那么多,多了吃不了
(UPDATE)修改
修改表数据
标准语法:UPDATE 表名 SET 列名1 = 值1,列名2 = 值2,... [where 条件];
例:UPDATE users SET NAME='北极熊' WHERE id=9;
修改时如果不加条件,则将所有数据都修改
(DELETE)删除
删除表数据
标准语法:DELETE FROM 表名 [WHERE 条件];
例:DELETE FROM users WHERE id=9;
删除时如果不加条件,则将所有数据都删除
4. 单表的查询
(SELECT)查询
查询语法总汇:
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件
order by
排序
limit
分页限定
-
查询全部
标准语法:SELECT * FROM 表名; 例:SELECT * FROM users;
-
按字段查询
标准语法:SELECT 列名1,列名2,... FROM 表名; 例:SELECT id,NAME FROM users;
-
去重查询
标准语法:SELECT DISTINCT 列名1,列名2,... FROM 表名; 例:SELECT DISTINCT id, NAME FROM users;
-
计算列的四则计算
标准语法:SELECT 列名1 运算符(+ - * /) 列名2 FROM 表名;(age是新增的int类型列) 例:SELECT age+10,NAME FROM users;
-
空值查找替换
标准语法:SELECT IFNULL(查找的列1,替换的值) 列名2 FROM 表名; 例:SELECT IFNULL(age+10,'二货'),NAME FROM users;
-
起别名
标准语法:SELECT 列名1,列名2,... AS 别名 FROM 表名 AS 别名;(意为列名可做别名,表名也可做别名) 例:SELECT zhenxiang.NAME,IFNULL(age,0)+10 AS getsum FROM users AS zhenxiang;
条件查询
符号 功能 > 大于 < 小于 >= 大于等于 <= 小于等于 = 等于 <> 或 != 不等于 BETWEEN … AND … 在某个范围之内(都包含) IN(…) 多选一 LIKE 占位符 模糊查询 _单个任意字符 %多个任意字符 IS NULL 是NULL IS NOT NULL 不是NULL AND 或 && 并且 OR 或 || 或者 NOT 或 ! 非,不是 -
一般条件查询语法
标准语法:SELECT 列名 FROM 表名 WHERE 条件; 例:SELECT * FROM users WHERE id > 3;
带区间的查询
SELECT * FROM users WHERE id>3 AND id<5;
指定信息查询
SELECT * FROM users WHERE id IN(1,2,8);
空值查询
SELECT * FROM users WHERE age IS NULL;
非空值查询
SELECT * FROM users WHERE age IS not NULL;
查询以企为开头的姓名
SELECT * FROM users WHERE NAME LIKE '企%';
查询第二个字为獭的姓名
SELECT * FROM users WHERE NAME LIKE '_獭%';
查询三个字符的名字
SELECT * FROM users WHERE NAME LIKE '___';(三个小下划线)
查询包含水獭的名字
SELECT * FROM users WHERE NAME LIKE '%水獭%';