MYSQL 基础

注释:  

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

分类:

 

 

数据定义语言DDL:

  C create

       R 查询

  U update 

  D delete

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

-- 切换数据库 从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;

常见数据类型:

 

varchar 和char都代表字符串:

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

  char 固定长度. 

创建表:

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 条件查询

# 查询员工姓名为黄蓉的员工信息
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);

# 查询含有''字的所有员工信息
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;

 

 

 

   

 

 

 

 

 

 

  

 

posted @ 2021-05-21 16:56  wangheng1409  阅读(53)  评论(0编辑  收藏  举报