MySQL从入门到放弃一 简单用法

一,安装运行

官网下载:嫌慢找镜像。
图形化界面:

doc:services.msc

控制面板-服务工具-服务
命令行:
启动mysql服务

net start mysql56

停止mysql服务:

net stop mysql56

打开数据库:
方法一:电脑左下角找到 mysql命令行(不推荐,如果出错、网络原因什么的,它会自动关闭窗口,找不到具体原因)
方法二:将mysql\bin 配置在Path环境变量中,DOC命令下输入:mysql -h localhost -u root -p

二,存储引擎

就是如何存储数据、如何更新数据、如何查询数据、
如何为存储的数据建立索引等一系列技术的实现方法。
查看mysql支持的存储引擎:

show engines;

常用的两种:
MyISAM:拥有较快的插入、查询速度,但不支持事务。
InnoDB:支持ACID事务,支持行级锁,支持外键;MySQL 5.5版本后的默认存储引擎

三,MySQL数据类型

大致分为3类:数值、日期/时间和字符串(字符)类型。
在这里插入图片描述

四,数据的完整性

数据完整性是指存储在数据库中的数据,应该保持一致性和完整性。
关系模型允许定义3类数据约束,他们是实体完整性、参照完整性以及用户定义的完整性。
前两种完整性约束由关系数据库系统自动支持。
在这里插入图片描述

唯一性约束:
unique意味者任何两条数据的同一字段不能有相同值,可保证实体完整性。
外键约束:
外键约束定义了表之间的一致性关系,用于强制参照完整性。
在插入数据时,必须先向主表插入,再向从表插入。删除数据时,刚好相反。

五,SQL语句

按照功能用途,可以划分为4种:DDL、DML、DQL和DCL。
数据定义语言(Data Definition Language):
DDL用于数据库、表、视图等的建立、删除。DDL包括CREATE、ALTER、DROP等。

数据操纵语言(Data Manipulation Language):
DML用于添加、删除和修改数据表中的记录。DML包括INSERT、DELETE和UPDATE。

数据控制语言(Date Control Language):
DCL包括数据库对象的权限管理和事务管理。DCL包括COMMIT、ROLLBACK、GRANT等。

数据查询语句(Data Query Language):
查询是数据库的基本功能。DQL中使用SELECT查询数据表中的记录。

1)数据定义语言
1,创建数据库:

create database table_name

需要定义的信息主要包括:表名、字段名、字段类型。

create[temporary]table [if not exits] table_name[(create_definition,...)][table_options][select_statement]

temporary:表示创建临时表,在当前会话结束后将自动消失。
if not exits:在建表前,先判断表是否存在,只有该表不存在时才创建
create_definition:建表语句的关键部分,用于定义表中各列的属性。
table_options:表的配置选项,例如:表的默认存储引擎、字符集。
select_statement:通过select语句建表。
2,删除数据库:

drop database table_name

3,删除contacts表

drop table table_name;

4,删除表

drop table table_name;

5,添加字段sex,类型为varchar(1)

alter table table_name add sex varchar(1);

6,修改字段sex的类型为tinyint

alter table table_name modify sex tinyint;

7,删除字段sex

alter table table_name drop column sex;

8,查看当前在哪个数据库下工作:

select database()

9,显示表的结构

desc table_name;

10,查看表生成的DDL(反译建表语句)

show create table table_name ;

2)数据操纵语言(创建、修改和删除)
1,插入单条数据:

insert into table_name(field1,field2,....) values(value1,value2,...);

2,插入多条数据

insert into table_name(field1,field2,....) values(valueA1,valueA2,...), (valueB1,valueB2,...);

3,修改数据

update table_name set field1=newValue1,field2=newValue2[where clause];

如果不带where,将更新所有。
4,删除数据

delete from table_name where id =1; 

5,数据默认


sex tinyint default 1

6,数据转义

' Tom\'s cat'
"  Lily's cat  "

3)数据查询语句
1,查询表中列的注释信息

select * from information_schema.columns
where table_schema = 'db' #表所在数据库
and table_name = 'tablename' ; #你要查的表

2,只查询列名和注释:

select column_name, column_comment from information_schema.columns where table_schema ='db' and table_name = 'tablename' ;

3,查看表的注释

select table_name,table_comment from information_schema.tables where table_schema = 'db' and table_name ='tablename'

4,select语句中使用where子句语句

select column_name from table_name where column_name 运算符 value;

5,and、or运算符语句

select column_name from table_name where condition1 and condition2 or condition3

and:表示左右两边的条件同时成立。
or:表示左右两边只要有一个条件成立。

6,运算符in的使用
在where语句中过滤某个字段的多个值。

select column_name from table_name where column_name in(value1,value2);

7,like模糊查询

select column_name from table_name where column_name like "%value%"

百分号“%”表示0个或多个字符,下划线 “_”表示单个字符
8,函数(mysql内置函数)

now()

insert into user(id,name,create_time) values(1,"zhangsan",now());

date_format()格式转换

select name,date_format(now(),'%Y/%m/%d') from user;

聚合函数(对一组值计算,返回单个值),count、sum、avg、min、max
ifnull()用于处理空值
ifnull(v1,v2),如果v1的值不为null,则返回v1,否则返回v2。
case when
类似编程语句的if else或者switch。

select id ,password,case sex when 1 then "男" when 2 then "女" else "未知" end as sex from c;

as sex 为取的别名
9,查询结果排序

order by
select column_name1,column_name2
from table_name1,table_name2
order by column_name,column_name[ASC|DESC]

ASC表示升序排列,DESC表示按降序排列。
默认为升序排列。

limit

select column_name1,column_name2
from table_name1,table_name2
limit[offset] row_count;

offset指定要返回的第一行的偏移量,第一行的偏移量是0,而不是1。
row_count指定要返回的最大行数。
limit的分页公式:
limit(page-1)row_count,row_count;

10,group by

select column_name,aggregate_function(column_name)
from table_name
group by column_name

aggregate_function表示聚合函数。
group by 可以对一列或多列进行分组。

11,having
在SQL中增加having子句原因是,where关键字无法与聚合函数一起使用。
having子句可以对分组后的各组数据进行筛选。

select column_name,agregate_function(column_name)
from table_name
where column_name operator value
group by column_name
having aggregate_function(column_name) operator value
©️2020 CSDN 皮肤主题: 像素格子 设计师:CSDN官方博客 返回首页