下载并安装Mysql和SQLyog
Mysql基础语法(DDL操作数据库)
- 查询所有的数据库列表:
SHOW DATABASES;
- 对数据库操作的分类包含: CRUD
C create 创建
R retrieve 查询
U update 修改
D delete 删除
- 创建数据库:
CREATE DATABASE 数据库名 CHARACTER SET utf8;
- 切换数据库:
USE 数据库名;
- 查询当前正在使用的数据库:
SELECT DATABASE();
- 修改数据库的字符集:
ALTER DATABASE 数据库名 CHARACTER SET utf8;
- 查询当前数据库的基本信息:
SHOW CREATE DATABASE 数据库名;
- 删除数据库:
DROP DATABASE 数据库名;
创建表的语法格式(DDL操作表)
- 创建表的语法格式
create table 表名(
字段名称1 字段类型(长度),
字段名称2 字段类型,
字段名称3 字段类型 最后一个列不要添加逗号
);
- MySql中常见的数据类型
int 整型
double 浮点型
varchar 字符串
date 日期类型 年月日 没有时分秒 yyyy-MM-dd
datetime 日期时间类型 yyyy-MM-dd HH:mm:ss
- 快速创建一个表结构相同的表(复制表结构):
CREATE TABLE 新表名称 LIKE 旧表名称;
- 查看表结构:
DESC 表名;
- 查看创建表的 sql:
SHOW CREATE TABLE 表名;
- 表的删除:
- 方式1: 将数据库中的某一张表永久删除
DROP TABLE test1;
- 方式2: 判断表是否存在, 如果存在就删除 如果不存在就不执行删除
DROP TABLE IF EXISTS test2;
- 修改表名称:
RENAME TABLE 旧表名 to 新表名
- 修改表的字符集为 gbk:
alter table 表名 character set 字符集
- 向表中添加一个字段 关键字: add
alter table 表名 add 字段名称 字段类型(长度)
- 修改表中列的类型或者长度 关键字 modify:
alter table 表名 modify 字段名称 字段类型
- 修改列的名称 关键字: change
alter table 表名 change 旧列名 新列名 类型(长度)
- 删除列 关键 drop:
alter table 表名 drop 列名
对表中的数据进行 增删改查(DML操作)
1.创建数据表:
语法格式: insert into 表名 (字段名1,字段名2...) values(字段值1,字段值2...)
例子:
-- 创建学生表
CREATE TABLE student(
sid INT,
sname VARCHAR(20),
age INT,
sex CHAR(1),
address VARCHAR(40)
);
- 增加字段,向表中插入数据:
-- 方式1 插入全部字段 将所有字段名都写出来
INSERT INTO student (sid,sname,age,sex,address) VALUES(1,'唐僧',18,'男','东土大唐');
-- 方式2 插入全部字段 不写字段名
INSERT INTO student VALUES(2,'唐僧',5,'男','西天');
-- 方式3 插入指定字段
INSERT INTO student (sid,sname) VALUES(3,'女儿国国王');
注意:
-- 1.值与字段必须对应 个数&数据类型&长度 都必须一致
INSERT INTO student (sid,sname,age,sex,address) VALUES(4,'孙悟空',18,'男','花果山');
-- 2.在插入 varchar char date 类型的时候,必须要使用 单引号 或者双引号进行包裹
INSERT INTO student (sid,sname,age,sex,address) VALUES(4,'孙悟空',18,'男','花果山');
-- 3.如果插入空值 可以忽略不写 或者写 null
INSERT INTO student (sid,sname) VALUES(5,'唐僧');
INSERT INTO student (sid,sname,age,sex,address) VALUES(6,'八戒',NULL,NULL,NULL);
- 修改操作:
语法格式1: update 表名 set 列名 = 值
语法格式2: update 表名 set 列名 = 值 [where 条件表达式: 字段名 = 值]
-- 一次性修改多个列
-- 修改sid 为 5的这条数据, 年龄改为20, 地址改为 大唐
UPDATE student SET age = 20 , address = '大唐' WHERE sid = 5;
4.删除:
语法格式1: delete from 表名;
语法格式2: delete from 表名 [where 条件];
-- 删除所有数据的方式 两种
1. delete from 表; 不推荐, 对表中的数据逐条删除. 效率低
2. truncate table 表; 推荐, 删除整张表, 然后再创建一个一模一样的新表.
- 查询:
基础查询语句
-- 查询emp 表中的所有数据
SELECT * FROM emp; -- * 表示所有的列
-- 查询所有数据 只显示 id 和 name
SELECT eid, ename FROM emp;
-- 查询所有的数据,然后给列名 改为中文
SELECT * FROM emp;
- 别名查询 使用关键字 as
SELECT
eid AS '编号',
cname AS '姓名',
sex AS '性别',
salary AS '薪资',
FROM emp;
- 去重操作
SELECT DISTINCT cname FROM emp;
- 将我们的员工薪资数据 +5000 进行展示
SELECT cname, money+5000 FROM emp;
--- 更细致写法
SELECT cname AS '姓名',money+5000 AS '金额' FROM test1;
条件查询
先取出表中的每条数据,满足条件的就返回,不满足的就过滤.
语法格式: select 列名 from 表名 where 条件表达式
比较运算符
> < <= >= = <> !=
BETWEEN ...AND...
IN(集合)
LIKE
IS NULL
逻辑运算符
And
Or
Not
- 查询员工姓名为公司的员工信息
SELECT *FROM test1 WHERE cname = '公司';
- 查询薪水价格不是5000的所有员工信息
SELECT *FROM test1 WHERE money != 5000;
SELECT *FROM test1 WHERE money <> 5000;
- 查询薪水价格在5000到10000之间所有员工信息
SELECT *FROM test1 WHERE money BETWEEN 5000 AND 10000;
SELECT *FROM test1 WHERE money >= 5000 AND money <= 10000;
- 查询薪水价格是3600或7200或者20000的所有员工信息
SELECT *FROM test1 WHERE money IN (5000,6000);
SELECT *FROM test1 WHERE money=5000 OR money=6000;
通配符的使用
like '_精'
% 通配符 ,表示匹配任意多个字符串
_ 通配符 ,表示匹配一个字符
- 查询含有’发’字的所有员工信息
SELECT *FROM test1 WHERE cname LIKE '%发%';
- 查询以’公’开头的所有员工信息
SELECT *FROM test1 WHERE cname LIKE '公%';
- 查询第二个字为’大’的所有员工信息
SELECT *FROM test1 WHERE cname LIKE '_发%';
- 查询没有home的员工信息
SELECT *FROM test1 WHERE home IS NULL;
- 查询有home的员工信息
SELECT *FROM test1 WHERE home IS NOT NULL;