mysql关键字l_MySQlL基本使用

MySQL

1.数据目录

数据库:文件夹

表:文件

数据

2.安装目录

配置文件 my.imi

SQL

Structured Query Language:结构化查询语言。。定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方。称之为方言。

通用语法

SQL语句单行或者多行书写,以分号结尾。可使用空格和缩进来增强语句的可读性

MySQL数据库的SQL语句不区分大小写,关键字建议使用大写

单行注释

--注释内容【--后必须有空格】#注释内容(mysql特有)

多行注释

/*注释*/

DDL:数据定义语言

用来定义数据库对象:数据库,表,列表。关键字:create,drop,alter

DML:数据操作语言

用来对数据库中表的记录进行增删改。关键字:insert,delete,update

DQL:数据查询语言

用来查询数据库中表的记录(数据)。关键字:select,where

DCL:数据控制语言

用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT,REVOKE

操作数据库:CRUDCreate,Retrieve查,Update改,Delete+使用数据库

登录:mysql -u... -p...mysql -uroot -padmin

mysql -hip-u... -p...mysql -h127.0.0.1 -uroot -p

DDL

操作数据库

查询数据库

show databases

information_schema

mysql

performance_schema

test

show create database mysql;

Database | Create Database

mysql   | CREATE DATABASE `mysql` /*!40100 DEFAULT CHARACTER SET utf8 */

创建数据库

creat database db1;

create database if not exists db2;

create database if not exists db2 character set utf8;

修改数据库

alter database db2 character set jbk;

删除数据库

drop database db1;

?

drop database if exists db1;

使用数据库

select database();查询当前正在使用的数据库

use db2;使用数据库

操作表

查询表

show tables;

desc 表名;查询表结构

创建表

create table tab1(age int,height double(3,2),birthday date,name varchar(5));

date:yyyy-MM-dd;

datetime:yyyy-MM-dd HH:mm:ss

timestamp:时间错类型 包含年月日时分秒。 若不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值。

create table tab2(age int,

height double(3,2),

birthday date,

name varchar(5),

insert_time timestamp

);

creat table 表名 like 被复制表名;

删除D(Delete)

drop table;

drop table if exists

修改表U(update)

1.修改表名:alter table 表名 rename to 新的表名

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

3.添加一列:alter table 表名 add 列名 数据类型;

4.修改列名称类型:alter table 表名 change 列名 新列名 新数据类型

alter table 表名 modify 列名 新数据类型

5.删除列:alter table 表名 drop sex;

DML:增删改表中数据

添加数据

INSERT INTO 表名(NAME,age,chinese,math) VALUES("张三",20,99.5,1122.5);

列名和值一一对应

若表名后,不定义列名,则默认给所有列添加值

insert into 表名 values(值1,值2,.....值n);

除了数字类型,其他都用引号起来【单引双引皆可】

删除数据

delete from 表名 [where条件];delete from 表名 where age=1;不加条件,改变所有数据的

delete from 表名;有多少记录就删除多少次

truncate table 表名;删除表,然后再创建一个一模一样的空表

修改数据

update 表名 set 列名1=值1,列名2=值2,......[where 条件]

DQL:查询表中数据

select *from 表名;

1.语法

select 字段列表from表名where条件列表group by分组字段having分组之后的条件order by排序limit分页限定

2.基础查询

1.多个字段查询

SELECT sex,NAME,age FROM preson;

?

SELECT

?

sex,-- 性别

?

NAME,-- 姓名

?

age -- 年龄

?

FROM

?

preson;-- 成员表

2.去重【注意格式....eg空格】

SELECT DISTINCT addresss FROM preson;

3.计算列

SELECT NAME,math,english,math+english FROM preson;

SELECT NAME,math,english,math+IFNULL(english,0) FROM preson;-- 空值

4.起别名

SELECT NAME,math,english,math+IFNULL(english,0) AS 总分 FROM preson;

[可用空格代替AS]

SELECT NAME,math AS 数学,english 英语,math+IFNULL(english,0) AS 总分 FROM preson;

3.条件查询

1.where子句后跟条件

2.运算符

>、=、=、<>【不等于】

BETWEEN...AND【之间,包含双边】

IN(集合)【之内】

LIKE【模糊查询】

IS NULL

and 或 &&

or 或||

not 或 !

【NULL值不能使用=、!=判断,用IS NULL,IS NOT NULL】

SELECT*FROM preson WHERE age<>20;

SELECT*FROM preson WHERE NAME LIKE ‘马%‘;

SELECT*FROM preson WHERE NAME LIKE ‘_岩%‘;

SELECT*FROM preson WHERE NAME LIKE ‘___‘;

SELECT*FROM preson WHERE NAME LIKE ‘%马%‘;

%一个或多个

_字数

4.查询语句

排序查询

order by子句

order by排序字段1排序方式1,排序字段2排序方式2

排序方式 ASC:升序【默认的】; DESC:降序

SELECT*FROM preson ORDER BY math,english DESC;

聚合函数:将一列数据作为一个整体,进行纵向的运算。

count:计算个数

1.一般选择非空的列 主键

2.count(*)

max:计算最大值

min

avg:计算平均值

SELECTSUM(english)FROM preson; -- 自动排除null值

-- 解决办法

SELECTCOUNT(IFNULL(english,0))FROM preson; -- IFNULL

SELECTCOUNT(id)FROM preson;-- 选择非空的列进行计算

分组查询

group by分组字段

注意1.分组之后查询的字段:分组字段、聚合函数

2.where ,having区别。

1.where分组之前进行限定,不满足条件,不参与分组

having分组之后进行限定,不满足条件,则不会被查询出来

2.where后不可跟聚合函数,having可进行聚合函数的判断

SELECTsex,COUNT(id),AVG(math),AVG(english)FROM preson GROUP BY sex

SELECTsex,AVG(math)FROM preson WHERE math>=70 GROUP BY sex

SELECTsex,COUNT(id),AVG(math)FROM preson WHERE math>=70 GROUP BY sex HAVING COUNT(id)>2;-- 分组之后人数大于二的   HAVING

SELECTsex,COUNT(id) 人数,AVG(math)FROM preson WHERE math>=70 GROUP BY sex HAVING 人数>2;

分页查询

limit开始的索引,每页查询的条数;

公式:开始的索引=(当前页码-1)*每页显示的条数

SELECTid,NAME,age FROM preson LIMIT 0,2;-- 第一页

SELECTid,NAME,age FROM preson LIMIT 2,2;-- 第二页

limit是MySQL的一个“方言”;

5.约束:对表中的数据进行限定,保证数据的正确性、有效性和完整性

非空约束 not null

USE db2;

CREATE TABLE student(id INT,

NAME VARCHAR(5) NOT NULL-- 创建前约束

);

ALTER TABLE student MODIFY NAME VARCHAR(5);

ALTER TABLE student MODIFY NAME VARCHAR(5) NOT NULL;-- 创建后约束

唯一约束unique

USE db2;

CREATE TABLE student1(id INT UNIQUE,-- null可重复

NAME VARCHAR(5)

);

ALTER TABLE student1 DROP INDEX id;

ALTER TABLE student1 MODIFY id INT UNIQUE;

主键约束primary key

1.非空且唯一

2.一张表只能有一个字段为主键

3.主键就是表中记录的唯一标识

USE db2;

CREATE TABLE student2(id INT PRIMARY KEY);

-- ALTER TABLE student1 MODIFY id INT;

ALTER TABLE student2 DROP PRIMARY KEY;

ALTER TABLE student2 MODIFY id INT PRIMARY KEY;

自动增长

1.若某一列是数值类型的,使用 auto_increment可以完成值的自动增长。

2.配合主键使用

USE db2;

CREATE TABLE student4(id INT PRIMARY KEY AUTO_INCREMENT,

NAME VARCHAR(5)

);

INSERT INTO student4(NAME) VALUES(‘张三‘),(‘李四‘);

INSERT INTO student4 VALUES(NULL,‘张三‘),(10,‘李四‘),(NULL,‘王五‘);

SELECT *FROM student4;

ALTER TABLE student4 MODIFY id INT;-- 删除自动增长

ALTER TABLE student4 MODIFY id INT AUTO_INCREMENT;

外键约束foreignkey【外键可以为null值】

1.创建表时,添加外键

constraint 外键名称 foreign key(外键列名称)references 主表名称(主表列名称)

2.删除外键

alter table 表名 drop foreign key 外键名称;

3.创建表之后,添加外键

alter table 表名 add constraint 外键名称 foreign key(外键字段名称)references 主表名称(主表列名称)

CREATE DATABASE db3;

USE db3;

CREATE TABLE school(id INT PRIMARY KEY AUTO_INCREMENT,

grade VARCHAR(5)

);

INSERT INTO school VALUES(NULL,‘一年级‘),(NULL,‘二年级‘),(NULL,‘三年级‘);

SELECT *FROM school;

TRUNCATE TABLE school;

?

?

?

USE db3;

CREATE TABLE student(id INT PRIMARY KEY AUTO_INCREMENT,

NAME VARCHAR(5),

sch_id INT,

CONSTRAINT stu_sch_id FOREIGN KEY(sch_id)REFERENCES school(id)

);

INSERT INTO student VALUES(NULL,‘张三‘,1),(NULL,‘李四‘,2),(NULL,‘王五‘,3),(NULL,‘赵六‘,2);

SELECT *FROM student;

ALTER TABLE student DROP FOREIGN KEY stu_sch_id;

ALTER TABLE student ADD CONSTRAINT stu_sch_id FOREIGN KEY(sch_id)REFERENCES school(id);

级联

级联删除:on delete cascade;

级联更新:on update cascade;

ALTER TABLE student ADD CONSTRAINT stu_sch_id FOREIGN KEY(sch_id)REFERENCES school(id)ON UPDATE CASCADE ON DELETE CASCADE;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值