MySQL

DDL:数据定义语言[create表、库]

DML:数据操作语句[增加insert、修改updata、删除delete]

DQL:数据查询语句[select]

DCL:数据控制语句[管理数据库:比如用户权限grant、revoke]

显示数据库语句:SHOW DATABASE

显示数据库创建语句:SHOW CREATE DATABASE db_name

数据库删除语句:DROP DATABASE [IF EXISTS] db_name

备份数据库(在DOS执行)命令行

mysqldump -u 用户名 -p -B 数据库1 数据库2 数据库n>文件名.sql

恢复数据库:Source 文件名.sql

CREATE TABLE table_name

(

field1 datatype,

field2 datatype,

field3 dataype

)character set 字符集 collate 校对规则 engine 存储引擎

指定unsinged则数据带符号

添加列

ALTER TABLE tablename

ADD (colum datatype [DEFAULT expr]

   \[,colum datatype\]...)

修改列

ALTER TABLE tablename

MODIFY (colum datatype [DEFAULT expr]

   \[,colum datatype\]...)

删除列

ALTER TABLE tablename

DROP (colum)

查看表的结构: desc 表名;-- 可以查看表的列

修改表名:Rename table 表名 to 新表名

修改表字符集:alter table 表名 character set 字符集

`ALTER TABLE emp
ADD image VARCHAR(32) NOT NULL DEFAULT '' AFTER resume

DESC emp

ALTER TABLE emp
MODIFY job VARCHAR(60) NOT NULL DEFAULT ''

ALTER TABLE emp
DROP sex

RENAME TABLE emp to employee

DESC employee

ALTER TABLE employee CHARACTER SET utf8

ALTER TABLE employee CHANGE name username VARCHAR(32) NOT NULL DEFAULT ''
DESC employee`

数据库CRUD语句

  1. insert语句
  2. update语句
  3. delete语句
  4. select语句

insert语句

INSERT INTO tablename [(colum[,colum...])]

VALUES (value [,value ...]);

`CREATE TABLE goods
( id INT,
goods_name VARCHAR(10),
price DOUBLE);

INSERT INTO goods (id,goods_name,price)
VALUES (1,'华为手机',20000)

INSERT INTO goods
VALUES (2,'apple',2000)
DESC employee

INSERT INTO employee
VALUES (4,'huawei','2000-9-10','2000-9-10 11:11:11','san',2000,'我爱国',110)
DESC employee
SELECT * FROM employee`

update语句

UPDATE tab_name

SET col_name =expr1[,col_name=expr2]

[WHERE where_definition]

UPDATE employee SET Salary =5000

UPDATE employee SET Salary=2000 WHERE username = '小妖怪'

UPDATE employee SET Salary = Salary+1000 WHERE username = 'huawei'

UPDATE employee SET image=120 WHERE username = '小妖怪'`

delete语句

delete from tab_name [WHERE where_defintion]

select语句

select [DISTINCT] * [{solum1,colum2...}] FROM tablename

DISTNCT去重

SELECT columname as 别名 from 表名

where 子句中经常使用的运算符

order by 子句排序查询语句 ASC升序 DESC降序

合计/统计函数 -- count

SELECT COUNT(*)/COUNT(列名) from tablename

count(*)返回满足条件的记录的行数

count(列)统计满足条件的某列有多少个,但是会排除为null

合计函数 -- sum

select sun(列名) from tablename where

合计函数 -- avg

select avg(列名) from tablename where

合计函数 -- max/min

select max(列名)/min(列名) from tablename where

使用gruop by 子句对列进行分组

select Colum1,colum2...from table

group by colum

使用having子句对分组后的结果进行过滤

select colum1,colum2...from table

group by Colum having 。。。

加密和系统函数

USER() 查询用户

DATABASE() 数据库名称

MD5(str) 为字符串算出一个MD5 32的字符串,(用户密码加锁)

PASSWORD(str)

[select * from mysql.user\G 从原文密码str计算并返回密码字符串,通常用于对mysql数据库的用户密码加密

mysql>create table users(id int ,name varchar(32) not null default'',pwd char(32) nut null default'')

SELECT USER() FROM DUAL

查看登录到mysql的有哪些用户,以及登录的IP

SELECT DATABASE() FROM DUAL

查询当前使用数据库名称

SELECT MD5('0000') FROM DUAL

MD5加密

流程控制函数

IF(expr1,expr2,expr3)--如果1为true 返回2 否则返回3

IFNULL(expr1,expr2)--如果expr1不为空NULL,则返回expr1,否则返回expr2

SELECT CASE WHERE expr1 THEN expr2 WHEN expr3 THEN expr4 ESLE expr5 END; 如果1为true则返回2 如果3为true 则返回4否则返回5

分页查询 :

select...limit start,rows

select结构

select Colum1,Colum2...from table

group by colum

having condition

order by colum

limit start,rows

多表查询

SELECT * FROM emp,dept

WHERE dept.deptno=emp.deptno

自链接 :是指在同一张表的链接查询(将同一张表看做两张表)

单行子查询:只返回一行数据的子查询

多行子查询:返回多行数据的子查询 用关键字in

合并查询

union all 不会去重

union 自动去重

primary key(主键) : 用于唯一的标示表行的数据,当定义主键的约束后,该列不能重复

复合主键:primary key(id,name)

unique 唯一 : 当定义了唯一约束后,该列数值是不能重复的

外键

primary key

foreign key() references --()

-- 创建主表

CREATE TABLE class (

id INT PRIMARY KEY ,

name VARCHAR(32) not null

)

-- 创建从表

CREATE TABLE stud(

id INT PRIMARY KEY ,

name VARCHAR(32) not null ,

class_id INT,

FOREIGN KEY (class_id) REFERENCES class(id)

)

check:用于强制行数据必须满足条件,假定在sal列上定义了check约束,并要求sal列值在10002000之间,如果不在10002000之间就会报错

posted on 2022-08-04 15:59  一别正思红豆子  阅读(25)  评论(0编辑  收藏  举报