基础相关
Yum安装 yum install -y mysql mysql-server mysql-devel
mysql的服务名叫 mysqld
Chkconfig mysqld on 设置开机启动
Mysql的配置文件保存在 /ete/my.cnf
Mysql的数据库文件默认保存 /var/lib/mysql/
Mysql 的日志文件 /var/log/mysqd.log
DDL 数据定义语言 对数据库本身进行操作修改,重命名删除数据(create alter drop rename)
DML 数据库维护语言 在表格插入更新数据等,对数据本身进行操作(select insert update delete)
DCL 数据控制语言 控制数据权限 跟事物相关的语言等 (grant,revoke)
MySQL是如何进行用户身份认证呢?
一、当用户从客户端请求登陆时,MySQL将授权表中的条目与客户端所提供的条目进行比较,包括用户的用户名,密码和主机。授权表中的Host字段是可以使用通配符作为模式进行匹配的,如test.example.com, %.example.com, %.com和%都可以匹配test.example.com这个主机。授权表中的User字段不允许使用模式匹配,但是可以有一个空字符的用户名代表匿名用户,并且空字符串可以匹配所有的用户名,就像通配符一样。 当user表中的Host和User有多个值可以匹配客户端提供的主机和用户名时,MySQL将user表读入内存,并且按照一定规则排序,按照排序规则读取到的第一个匹配客户端用户名和主机名的条目对客户端进行身份验证。
二、排序规则:对于Host字段,按照匹配的精确程度进行排序,越精确的排序越前,例如当匹配test.example.com这个主机时, %.example.com比%.com更精确,而test.example.com比%.example.com更精确。对于User字段,非空的字符串用户名比空字符串匹配的用户名排序更靠前。 User和Host字段都有多个匹配值,MySQL使用主机名排序最前的条目,在主机名字段相同时再选取用户名排序更前的条目。因此,如果User和Host字段都有多个匹配值,主机名最精确匹配的条目被用户对用户进行认证。
数据类型
Integer int smallint tinyint (size) 数值类型
Date(yyyymmdd) 日期类型
Char 固定长度字符
Varchar 可变长度字符
数据库操作
create databasename;
drop database databasename;
Show databases;
Use databasename;
Select version();
表的管理
Show tables;Create tablename;
查询表 Select * from tablename;
条件查询 select * from biao where coures_name ='english';
select * from biao where time>10;
查询表的结构 Desc tablename;
查询表的详细信息 select course_name from COURSR; 对指定列的查询
不查看重复数据 select distinct coures_name from biao;
在表中插入数据 insert into COURSR(id,course_name,teacher) 分别对列进行插入数据
-> values('4','magic','victor');第一个括号里面不用加‘’
insert into biao values('1','english','vitor','20','80');
删除指定的某一行 delete from biao where id=1;
修改某一列的属性 update biao set lecture='nash_su' where id=1;
重命名表格 alter table kebiao rename biao ;
在表中添加一列 alter table biao add link varchar(20);
删除一列 alter table biao drop column link; link为列的名字
修改列的数据类型 alter table biao modify teacher varchar(100);
重命名一个列 alter table biao change column teacher lecture varchar(100);
对表进行排序 select * from COURSR order by course_length; 倒序在后面加desc
shell下运行sql语句 mysql -e 'show databases;' -p
获取mysql参数 show global variables;(有些参数立即生效,有些需要修改配置文件)
查询某个字段并降序排列 select lucky_grade from ap_award_2017cash order by lucky_grade desc; (升序是asc)
用户管理
查询数据库用户 select user from user;
创建用户 create user nash_su identified by ‘0000’;
修改用户密码 set passwore for viou77 = password(‘0000’);
update mysql.user set password=password('newpassword') where user='root'
修改用户权限
grant all privileges on databasename.tablename to 'username'@'%' identified by '0000';
数据库名称(*表示所有数据库).*表示所有的表 %表示所有主机
注意的是用户名 和主机 和此用户名密码 需要用 ’’ 括起来。
mysqldump备份恢复工具
备份 mysqldump -u root -p linuxcast > linuxcast_bk.sql
恢复 mysql -u root -p linuxcast < linuxcast_bk.sql
数据库编码
1、 数据库使用合适的编码 可以节约空间, 数据库与客户端通信必须使用相同的编码
show character set; 显示当前数据库可以支持的编码 一般utf8 兼容性较好
create database ladb default character set utf8 default collate utf8_general_ci; 创建数据库并设置默认编码
show variables like ‘character_set% ’; 显示当前数据库默认编码
show variables like 'collation%'; 显示当前数据库collate编码
Alter database linuxcast character set utf8 collate utf8_general_ci;
修改数据的编码, 一般在数据库有数据时不建议这么做。
null,default,auto_increment,PRIMARY KEY详解
null
表示该表中的字段数据是否可以为空,mysql默认是null,如果该表要求必须填写数据,则需要制定为not null。
但是在自增列和TIMESTAMP字段中,这个规则并不适用。向这些字段中插入NULL值将会导致插入下一个自动增加的值或者当前的时间戳。
例如:
Create table tablename (ID int notnull);
Default
表示在插入数据时可以设置此字段的默认数据,如
Create table tablename (ID int notnull default ‘qq’);
如果不设default 默认值, 系统又默认null的话, 那么此数据在空的情况下会显示null。
如果不设default默认值,系统又设置了not null ,那么此数据在空的情况下会显示0.
如果设置了默认值 , 那么在不插入数据的情况下会显示此前设定的
AUTO_INCREMENT
只适用于int数据类型的段中,mysql会自动生成一个数,在上一次数值上+1.
对于主键,这是非常有用的。因为其允许开发者使用MySQL为每条记录创建唯一的标识符。
Create table tablename (ID int notnull default ‘qq’auto_increment);
MySQL表中只能有一个AUTO_INCREMENT字段
PRIMARY KEY
能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键 .
主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,主键是一种唯一性索引.
索引(index) 是用来快速地寻找那些具有特定值的记录。主要是为了检索的方便,是为了加快访问速度(但是会影响写入速度), 按一定的规则创建的,一般起到排序作用。
ALTER TABLE parts ADD INDEX idx_model (model);
这句话的意思是,为 parts 表增加一个索引,索引建立在 model字段上,给这个索引起个名字叫idx_model。
create table t1 (`id` int(4), `name` char(40));
create table t1 ('id' int(4), `name` char(40));
您还未添加分享代码,请到主题选项中,添加百度分享代码!
您可以选择一种方式赞助本站
支付宝转账赞助
支付宝扫一扫赞助
微信钱包扫描赞助