MYSQL 基础

注释:  

MYSQL 基础

每行sql语句后加; 和java一样.

分类:

MYSQL 基础

 

 

数据定义语言DDL:

  C create

       R 查询

  U update 

  D delete

MYSQL 基础

/*
方式1 直接指定数据库名进行创建
默认数据库字符集为:latin1
*/
CREATE DATABASE db1;
/*
方式2 指定数据库名称,指定数据库的字符集
一般都指定为 utf8,与Java中的编码保持一致
*/
CREATE DATABASE db1_1 CHARACTER SET utf8;

MYSQL 基础

-- 切换数据库 从db1 切换到 db1_1
USE db1_1;
-- 查看当前正在使用的数据库
SELECT DATABASE();
-- 查看Mysql中有哪些数据库
SHOW DATABASES;
-- 查看一个数据库的定义信息
SHOW CREATE DATABASE db1_1;

mysql 默认数据库:

information_schema  #信息数据库,保存其他数据库的信息

mysql  #用户和权限相关信息

performance_schema #性能相关数据

sys  记录了dba所需要的一些信息

DDL 修改和删除:

-- 将数据库db1 的字符集 修改为 utf8
ALTER DATABASE db1 CHARACTER SET utf8;
-- 查看当前数据库的基本信息,发现编码已更改
SHOW CREATE DATABASE db1;
-- 删除某个数据库
DROP DATABASE db1_1;

常见数据类型:

MYSQL 基础

 

MYSQL 基础

varchar 和char都代表字符串:

  varchar 是可变长度的类型,存储字符串,只使用所需空间.

  char 固定长度. 

MYSQL 基础

创建表:

create table  test1(
    tid int,
    tdata date
);

--复制表结构:

create table test2 like test1;

--查看表结构:

desc test1;

--查看表:

-- 查看当前数据库中的所有表名
SHOW TABLES;
-- 显示当前数据表的结构
DESC category;
-- 查看创建表的SQL语句
SHOW CREATE TABLE category;

--删除表: 

-- 直接删除 test1 表
DROP TABLE test1;
-- 先判断 再删除test2表
DROP TABLE IF EXISTS test2;

--修改表:

  --修改表名:   

RENAME TABLE category TO category1;

  --修改表的字符集: 

alter table 表名 character set 字符集
alter table category character set gbk;

  --添加一个字段:

alter table 表名 add 字段名 字段类型;

alter table category add desc varchar(20);

  --修改表中列的类型或长度:

alter table 表名 modify 字段名 字段类型

alter table category modify desc char(50);

  --修改列的名称: 

 alter table 表名 change 旧列名 新列名 类型(长度)

 alter table category change desc  cdesc varchar(30);

  --删除列:

  alter table 表名 drop 列名;

  alter table category drop desc;

--DML插入:

  insert into 表名(字段1,字段2,...) values(值1,值2,...);
  insert into student(sid,sname,age,sex,address) values(1,悟空,18,,花果山);
  insert into student   values(2,悟空,5,,地球);
  insert into student(sid,sname) values(3,蜘蛛精);

--DML 修改:

update 表名 set 列名=update 表名 set 列名=[where 条件表达式]

 

--DML 删除:

   delete from 表名;
  delete from 表名 [where 条件]
  delete from student where sid=6;
  truncate table 表名; #删除所有数据 ,删除整张表,再创建一个一模一样的表.

--DQL简单查询:

  select 列名 from 表名
  select * from emp;
  select eid,name from emp;  #指定列查询
  select eid as 编号 ,name as 姓名  from emp; //别名查询,as可以省略
  select distinct dept_name from emp; # 去重
  select name,salary+1000 as salary from emp;

--DQL 条件查询

MYSQL 基础

MYSQL 基础

# 查询员工姓名为黄蓉的员工信息
SELECT * FROM emp WHERE ename = 黄蓉;
# 查询薪水价格为5000的员工信息
SELECT * FROM emp WHERE salary = 5000;
# 查询薪水价格不是5000的所有员工信息
SELECT * FROM emp WHERE salary != 5000;
SELECT * FROM emp WHERE salary <> 5000;
# 查询薪水价格大于6000元的所有员工信息
SELECT * FROM emp WHERE salary > 6000;
# 查询薪水价格在5000到10000之间所有员工信息
SELECT * FROM emp WHERE salary BETWEEN 5000 AND 10000;
# 查询薪水价格是3600或7200或者20000的所有员工信息
-- 方式1: or
SELECT * FROM emp WHERE salary = 3600 OR salary = 7200 OR salary = 20000;
-- 方式2: in() 匹配括号中指定的参数
SELECT * FROM emp WHERE salary IN(3600,7200,20000);

MYSQL 基础

# 查询含有字的所有员工信息
SELECT * FROM emp WHERE ename LIKE %精%;
# 查询以开头的所有员工信息
SELECT * FROM emp WHERE ename LIKE 孙%;
# 查询第二个字为的所有员工信息
SELECT * FROM emp WHERE ename LIKE _兔%;
# 查询没有部门的员工信息
SELECT * FROM emp WHERE dept_name IS NULL;
-- SELECT * FROM emp WHERE dept_name = NULL;
# 查询有部门的员工信息
SELECT * FROM emp WHERE dept_name IS NOT NULL;

 

 

 

   

 

 

 

 

 

 

  

 

MYSQL 基础

上一篇:mysql 根据子查询 进行 编写 修改语句


下一篇:mysql语法归纳总结