深入浅出mysql之基础篇

时间:2022-03-31 16:22:48

深入浅出mysql之基础篇

mysql的安装

windows linux mac 安装会有不同

数据库的三大范式

1.第一范式(确保每列保持原子性)

第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。

2.第二范式(确保表中的每列都和主键相关)

第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。

3.第三范式(确保每列都和主键列直接相关,而不是间接相关)

第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。

sql的基础

sql语言分类

DDL:数据定义语句 create drop alter
DML:数据操纵语句 insert delete update select
DCL:数据控制语句 grant revoke

DLL语句

create databases dbname;
show database;
use dbname;
show tables;
drop database dbname;
drop dbname tabname;

创建表:
create table tabname ( colunm_name type constraints,)
drop table tabname
修改表
alter table modify coluname_name type
alter table add column coluname_name type
alter table tabname drop column col_name
alter table tabname chage col col2 type

alter table tabname rename new_tabname

desc tabname;

DML 语句

 insert into table(field1,field2)values(value1,value2);
update tabname set field1=xxx where filed=xxx
select * from tabname
delete from tabname where field1=xxx
distinct
where
order by
limit
group by
with rollup--再汇总
having
sum() max() min()
join
左连接--包含左边的所有记录
有连接--包含右边的所有记录
子查询 in,not in,=,!=,exists,not exists
union all 联合所有
union 联合去重

DCL 语句

分配权限
grant select,insert on dbname.* to 'z1'@'locahost' identified '123'

收回权限
revoke

帮助

?xx

mysql支持的数据类型

mysql支持的类型

tinyint 
smallint
mediumint
int,integer
bigint
float
double
dec(m,d)
decimal(m,d)
bit(m)
auto_increment

时间和日期

date 日期
datetime 1000----9999年
timestamp 到2038年的某一刻
time 时间
year 年

时区

查看 show variables like 'time_%';
修改时区set time_zone='+9:00'

字符串类型

 char 0-255
varchar 0-65535
tinyblob 255
blob 65535
mediublob 巨大
longblob 巨大
tinytext 255
text 65535
mediumtext 巨大
longtext巨大
varbinay 0-M
binary 0-m

char和varchar

char固定长度
varchar变长

varbinay和binary

二进制字符串

enum 枚举型 最多运行65535个成员

set 类型 0-64个成员

mysql中的运算符

算术运算符

+ - * / %

比较运算符

= <> !=  <=> <  <= > > =
between in
is nul , is not null ,like,regexp,rlike

逻辑运算符

not 或! ,and 或&& ,or或|| ,xor异或

位运算符

& ! ^ ~ >> <<

运算符的优先级

:=
|| or xor
&& and
not
between,case,when else
比较运算符
|
&
<<,>>
-,+
*,/,div,%,mod
^
-
!

常用的函数

函数名字和功能笔记一致,我也就不再注释~~

字符串函数

concat
insert
lower
upper
left
right
lpad
rpad
ltrim
rtrim
repleat
replace
strcmp
trim
substring

数值函数

abs
cell
floor
mod
rand
round
truncate

日期函数

curdate
curtime
time
unix_timestamp
from_unixtime
week
year
hour
minute
monthname
date_format
date_add
datediff

流程函数

if(value,t,f)如果value真,返回t,否则返回f
ifnull(v1,v2) 如果v1不为空返回v1否则返回v2
case when v1 then result1 else default end 如果v1真则result1 否则default
case expr when v1 then re1 else default end 如果expr等于v1则re1 否则default

其他常用的函数
datebase()
version()
user()
inet_aton()
inet_ntoa()
password()
md5()

图形工具的使用

mysql administrator

mysql query brower

php admin

数据库范式参考博客

http://www.cnblogs.com/linjiqin/archive/2012/04/01/2428695.html
http://baike.baidu.com/link?url=1O1_PY90E_pmKqhoKaeqRfMo6c5N8xtn_R8bUkTyYFrCVmoPsQER2ZAS4CoFCKnbQpQQpmJibLYMSay4ryL14zCANxd9SFrJjsMNBIYkEU_VhWGDm_RLqxi5zR3ym4CKpZH7EtSqfIpSIKI7xr5OQK