mysql

MySQL的学习

数据库:高效的存储和处理数据的介质(主要分为磁盘和内存两种)

数据库分为关系型数据库和非关系型数据库

关系型数据库:1、安全,其将数据保存到磁盘中,基本不可能出现丢失数据的情况;2、比较浪费空间,因为其用二维表的形式存储数据

非关系型数据库:1、存储数据的效率比较高;2、不是特别安全,突然断电时会导致数据丢失

关系型数据库是一种建立在关系模型(数学模型)上的数据库
关系主要包括三个方面:1、数据结构(数据存储形式,二维表(行和列));2、操作指令集合(所有的SQL语句);3、完整性约束(表内数据约束(字段与字段)和表与表之间的约束(外键)
如果表中对应的某个字段值为空,但是系统依然会为其分配存储空间,这也就是关系型数据库比较浪费空间的原因。

DB:数据库
DBMS:数据库管理系统
DBS:数据库系统
DBA:数据库管理员

SQL:
1.DDL(Data Definition Language)数据定义语言,用来维护存储数据的结构(数据库、表),代表指令为create、drop和alter等
2.DML(Data Manipulation Language)数据操作语言,用来对数据进行操作(表中的内容)代表指令为insert、delete和update等,不过早DML内部又单独进行了一个分类,即DQL(Data Query Language),数据查询语言,代表指令为select
3.DCL(Data Control Language)数据控制语言,主要是负责(用户)权限管理,代表指令为grant和revoke等

MySQL数据库是一种C\S结构的软件,即分为:客户端和服务端
若想访问服务器,则必须通过客户端;服务端应该一直运行,客户端则在需要使用的时候运行

交互方式
1.客户端连接认证,即连接服务器,认证身份mysql.exe-hPup
-h,主机地址,本地为localhost,远程为IP地址
-P,端口号,用来找软件
-u,用户名
-p,密码
2.发送SQL指令
3.服务器接受SQL指令,然后处理SQL指令并返回操作结果
4.客户端接受结果并显示结果
5.由于服务器并发限制,需要断开连接(三种指令,分别为exit、quit和\q,释放资源

MySQL数据库服务器的内部对象分为四层:分别为数据管理系统(DBMS)、数据库(DB)、表(Table)、字段(Filed)。

SQL基本操作主要包括增删改查。根据操作对象的不同,可以将SQL的基本操作分为三类:1.库操作2.表(字段)操作3.数据操作

库操作
1.新增数据库
语法:create database + 数据库名称+[库选项]
库选项是用来约束数据库的,为可选项(有默认值),共有两种,分别为:
字符集设定:charset/character set +具体字符集,用来表示数据存储的编码格式,常用的字符集包括GBK和UTF8等

校对集设定:collate+具体校对集,表示数据比较的规则,其依赖字符集

数据库的名字不能用关键字或者保留字
如果非要使用数据库的关键字或者保留字作为数据库名称,那么必须用反引号将其括起来
如果还想使用中文作为数据库的名称,那就得保证数据库能够识别中文(强烈建议不要用中文命名数据库的名称)

2.查询数据库
查看全部 show databases
查看部分(模糊查询) show databases like ‘pattern’
pattern是匹配模式,有两种,分别为:
%:表示匹配多个字符
—:表示匹配单个字符

在匹配含有下划线_的数据库名称的时候,需要在下划线_的数据库名称的时候,需要在下划线前面加上_进行转义操作

mysql的命令集合:
1.select column_name/* from table_name
2.delete colunm_name/ * fron table_name
3.select distinct colum_name from table_name
4.select * from table_name where condition1 or /and condition2
5.select */column_name from table_name order by column_name1,column_name2
6.insert into table_name values(value1,value2,…)
或者 insert into table_name(column_name1,column_name2,…) values(value1,value2,…)
7.update用于修改表中的数据
update table_name set column_name = new_value where column_name=old_name
8.delete from table_name where column_name=some_value
9.select top number/percent column_name from table_name
10.select column_name from table_name where column_name like /not like pattern (%可用于定义通配符)
通配符: %可以代替一个或者多个字符
_代替一个字符
[charlist]字符列中的任何单一字符
[^charlist] [!charlist]不在字符列中的任何字符
11.select column_name from table_name where column_name in (value1,value2,value3…)
12.select column_name from table_name where column_name not betwween value1 and value2
value1/value2:数值,文本,日期
在不同的SQL版本中,出现的结果可能含有value1,不含value2或者相反
13.alias:重命名,主要是用在表名复杂或者列名复杂的情况
select column_name from table_name as alias name
select column_name as alias name from table_name
14.join:连接 类型有left join(保留左边的表),right join(保留右边的表),full join(两边的表都保留),inner join(两个表的交集)
select column_name from table_name1 left/inner/right/full join table_name2 on table_name1/column_name1=table_name2/column_name2
15.select into new_table from old_table:用于备份
16.create datebase database_name
17.create table table_name(column_name1,column_name2,…)
18.drop database database_name
drop table table_name
drop index_name on table_name
truncate table table_name :只是删除表中的数据
19.alter table:用于添加、修改、删除已有表中的列
alter table table_name add column_name datatype
alter table table_name drop column column_name
alter table table_name alter column column_name datatype
20.主要的函数类型:max,min,sum等作用于column
select max(column_name) as new_name from table_name
example:
select column_name,sum(column_name) from table_name where condition

未完待续…

你可能感兴趣的:(mysql)