Lunix下的mysql

1.安装mysql

安装mysql
yum -y install mysql mysql-dev mysql-server
启动mysql
service mysqld restart
重启之后生效
chkconfig mysqld on

2.登录

设置密码
mysqladmin -u 用户名 password '要修改的密码'
登录
mysql -u 用户 -p//-p:通过密码登录,会提示你输入密码
退出
quit;

3.数据库操作

查看数据库
show databases;
创建数据库
create database XX;

4.链接到Navicat

此时数据库已经安装完成了,但是此时只有本机能访问,局域网内其他用户无法访问到。

切入mysql数据库
mysql> use mysql;
查询用户表信息
mysql> select host,user,password from user;
删除无用的用户
delete from user where password='';

再次查询,此时只有一个用户了,绑定机器名是localhost,也就是只有本机下可以访问到。

将localhost 修改为%(通配)
mysql> update user set host='%';
修改后需要刷新权限
mysql> flush privileges;

此时关闭防火墙后局域网内其他用户也可以访问了

5. 建表

Create table 表名(
字段名 数据类型 约束,
字段名 数据类型 约束,
……
字段名 数据类型 约束
)数据库引擎 默认字符编码;

6.查询

Select 字段列表 from 表名;

7.删除

Delect from 表名//项目中是禁止使用delete语句

Tip:如果使用delete语句且并没有见到where一定要注意!!!

8.条件

where 字段名 关系运算符 值 

9.修改

update 表名 字段名 = 字段值,字段名 = 字段值(原则上也要加where条件)

10.添加

insert into 表名(字段列表) values (值列表);

11.数据库三范式

(1)原子性:列不可再分
(2)必须有主键
(3)有关联的时候用外键,不再建立重复的字段
Tip:但现在许多互联网的项目基本都不遵守三范式。

12.完整性约束

(1)主键

每一条记录的一个身份证号码,不重复,主键会有一个默认的索引,知道了主键就可以直接锁定该行数据

primary key

双主键:两个字段组合作为主键单独一个可以重复,组合之后不能重复

CONSTRAINT 主键名 primary key(字段名,字段名)
(2)非空
not null
(3)默认值
default 默认值
(4)唯一约束
unique
(5)检查约束

检查字段的值
mysql检查约束可以创建,但是没有作用

check (条件)
(6)外键
foreign key (字段) references (被参照的字段)

tip:因为数据库引擎的关系,建表时候应设置引擎,外键才起效

engine=innodb default charset=utf8
(7)自增

为了让数据有唯一性,很多情况下,主键都是不参与业务的

auto_increment

13.分页查询

Limit 后面跟随两个参数:
1从哪开始,下标是0
2查询多少条

select * from student limit 3,2;

14.函数

自定义函数
create function 函数名(参数列表)
returns 返回值类型
begin
    Declare 变量名 数据类型;
    Set 变量名=变量值;
End
create function fun(cid int)
returns varhar(20)
begin
    declare result varchar(20);
    set result =(select name from classes where id=cid);
    retuen result;
end
rand() 随机数
select rand(1); //返回0~1的随机数
select rand(2); //返回0~2的随机数
sing() 正负:负数、0正数分别返回-1,0,1
sin(x) 求正弦函数
select sin(radians(30))  //0.5
length(s) 求字符s长度

15.触发器

触发事件:insert update delete
触发时间:before after
触发器中有两个对象 new old

create trigger delclass
before delete on classes
for each row
begin
    delete from student where c_id = old.id;
end

16.存储过程

调用方便,相当于在数据库里写方法。

Lunix下的mysql_第1张图片

你可能感兴趣的:(Lunix下的mysql)