MySQL系列-----初始

基本的增删改查

数据库的命名规则:
 1.可以由数字、字母、下划线、@、#、$
 2.区分大小写(里面的sql语句可以)
 3.唯一性
 4.不能使用关键字如 create select
 5.不能单独使用数字
 6.最长128位

设置默认:character_set_server=utf8


数据库增删查改
增:也就是创建 create database db1




操作文件夹(库)
增
   create database db1  charset utf8;
改
    alter database db1 charset gbk;
查
  show databases;
  show create database db1;
删
   drop database db1;



操作文件(表)
>>use db1切换到文件夹下
增
  create table t1(id int,name char10))engine=innodb;
删
  drop table t1;
改
  alter table t1 add age int,sex male;  增加字段
  alter table t1 modify name char(12); 修改长度
查
   show tables;
   show create table t1;
   describe t1 查看表结构




操作文件的一行行内容(记录)

增
   insert into t1 values(1,'egon'),(2,'egon2'),(3,'egon3');#默认的按位置一个一个传
   insert into t1(name) values('egon'),('egon2'),('egon3');  t1(name)只传名字


删
  delete from t1 全部删除
  delete from t1 where id=4; #删除id为4的那一行
  truncate t1; 全部删除了,当数据量比较大时用这种删除速度快

改
  update t1 set name='sb' where id=4;
查
  select * from t1;查看所有
  select name from t1;
  select name,id from t1;
default charset utf8;t


自增id
create table t1(id int primary key,name char(10)); #主键,不为空且唯一
create table t3(id int not null unique,name char(10));
create table t5(id int primary key auto_increment,name char(10));就可以只传名字然后id自加了
insert into t5(name) values
('egon1'),
('egon2'),
('egon3'),
('egon4'),
('egon5'),
('egon6'),
('egon7'),
('egon8'),
('egon9'),
('egon10'),

查看:select * from t5
查看大于10的 select * from t5 id>5;
查看大于4小于9的 select * from t5 where id>4 and id<9;

id 唯一且不为空
select * from t5 where name='egon5';


delete 删除完以后再想添加就是从之前的序号往后
truncate 全部删除,直接清空了,再添加就从头开始了

拷贝表
   create table t6 select * from t5;  只拷贝了数据

   create table t7 select * from t5 where 3=2;  只拷贝表结构



改表用 alter
 alter table t7 modify id int primary key auto_increment;
 insert into t7(name) values
('egon1'),
('egon2'),
('egon3'),
('egon4'),
('egon5'),
('egon6'),
('egon7'),
('egon8'),
('egon9'),
('egon10'),
('egon11'),
('egon12'),
('egon13');


想要用delete删除1后面的egon是做不到的,因为他删的是一条记录

改表内容用update
update改的是字段
  想要改掉所有的名字 update t7 set name='';


权限管理 用户对库、表、表里字段的管理权限
级别1:针对所有的库
级别2:

存储引擎

mysql中建立的库===>文件夹

库中建立的表===>文件

现实生活中我们用来存储数据的文件应该有不同的类型:比如存文本用txt类型,存表格用excel,存图片用png等

数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎。
存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法
因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和
操作此表的类型)

二 mysql支持的存储引擎

MariaDB [(none)]> show engines\G  #查看所有支持的存储引擎
MariaDB [(none)]> show variables like 'storage_engine%'; #查看正在使用的存储引擎

三 使用存储引擎

方法1:建表时指定

MariaDB [db1]> create table innodb_t1(id int,name char)engine=innodb;
MariaDB [db1]> create table innodb_t2(id int)engine=innodb;
MariaDB [db1]> show create table innodb_t1;
MariaDB [db1]> show create table innodb_t2;

方法2:在配置文件中指定默认的存储引擎

/etc/my.cnf
[mysqld]
default-storage-engine=INNODB
innodb_file_per_table=1

[root@egon db1]# cd /var/lib/mysql/db1/
[root@egon db1]# ls
db.opt  innodb_t1.frm  innodb_t1.ibd  innodb_t2.frm  innodb_t2.ibd

练习

创建四个表,分别使用innodb,myisam,memory,blackhole存储引擎,进行插入数据测试

复制代码
MariaDB [db1]> create table t1(id int)engine=innodb;
MariaDB [db1]> create table t2(id int)engine=myisam;
MariaDB [db1]> create table t3(id int)engine=memory;
MariaDB [db1]> create table t4(id int)engine=blackhole;
MariaDB [db1]> quit
[root@egon db1]# ls /var/lib/mysql/db1/ #发现后两种存储引擎只有表结构,无数据
db.opt  t1.frm  t1.ibd  t2.MYD  t2.MYI  t2.frm  t3.frm  t4.frm

#memory,在重启mysql或者重启机器后,表内数据清空
#blackhole,往表内插入任何数据,都相当于丢入黑洞,表内永远不存记录

权限问题

#创建用户
create user 'lin'@'localhost' identified by '123';

#insert,delele,update,select
#级别1:对所有库,下的所有表,下的所有字段
grant select on *.* to 'lin1'@'localhost' identified by '123';

#级别2:对db1库,下的所有表,下的所有字段
grant select on db1.* to 'lin2'@'localhost' identified by '123';

#级别3:对表db1.t1,下的所有字段
grant select on db1.t1 to 'lin3'@'localhost' identified by '123';

#级别4:对表db1.t1,下的id,name字段
grant select (id,name) on db1.t1 to 'lin4'@'localhost' identified by '123';
grant select (id,name),update (name) on db1.t1 to 'lin5'@'localhost' identified by '123';

#修改完权限后,要记得刷新权限
flush privileges;

回收权限
revoke select on *.* from 'lin1'@'localhost';

 

posted @ 2017-09-12 15:10  兰博~~  阅读(174)  评论(0编辑  收藏  举报