2-数据库mysql

  1 lesson02数据库
  2 
  3 
  4 #视频1  作业
  5 
  6 
  7 -----------------------------------------------------------------------
  8 #视频2 alter 命令--修改,添加--表的结构
  9 修改表名:alter table student rename to new_student;
 10 修改字段名:alter table student change id new_id char(10);
 11 修改字段类型:alter table student modify new_id char(10);
 12 表描述:desc student;
 13 
 14 添加列:alter table student add [column] id_1 varchar(10);
 15 添加到第一列:alter table student add [column] id_2 first;
 16 字段换位置:alter table student modify id_2 int after age;
 17 添加到指定列后:alter table student add id_3 varchar(10) after name;
 18 删除列:alter table student drop [column] name;
 19 
 20 #视频2 子查询,连接查询,
 21 多张表-子查询,
 22 select grade from grades where student_number=(select nunmber from students where name='张三');
 23 
 24 内连接(交叉连接) --连接查询,
 25 select * from a;
 26 select * from b;
 27 select * from a join b;
 28 
 29 select * from students join grades on students.number = grades.student_number;   //join ... on...  格式
 30 
 31 
 32 #视频3  约束条件
 33 跟ppt敲
 34 default  默认约束
 35 not null  非空约束
 36 unique key 唯一约束
 37 primary key 主键约束  =非空+唯一  ,每张表只能有一个主键
 38 auto_increment  自增长 ,通常配合主键使用,一个表里只有一个自增。
 39 foreign key 外键约束 //保持数据一致性,实现一对多关系。一般情况是关联到另一张表的主键
 40 a表中id是b表中id的外键,那么增加数据时,先填加a中id,才能填加b中和ad表id相同的数据。
 41 删除数据时,先删除b中id,然后才能删除a表中的id
 42 
 43 //表a
 44 create tabe a(
 45     a_id int primary key auto_increment,
 46     a_id2 int unique key,
 47     name varchar(20) not null,
 48     age int default 18)auto_increment=100;            //年龄默认18 ,姓名非空,id_1 主键, id自增长
 49 
 50 //表b
 51 create table b(
 52     b_id int auto_increment,
 53     b_name varchar(20),
 54     constraint AB_foreign foreign key(b_id) references a(a_id);
 55     
 56     
 57 desc a;
 58 insert into a(name) values('句号'),('南北'),('不懂');   
 59 alter table a modify age int default 20;  //修改年龄默认20
 60 alter table a modify age int;  //删除default约束
 61 
 62 insert into a value(1,'zhaosi',19);
 63 alter table a modify id int not null;  //修改id非空
 64 alter table a modify id int;  //删除非空约束
 65 
 66 insert into a value(2,'lisi',20);
 67 alter table a modify name varchar(20) unique;  //添加唯一约束
 68 alter table a drop key name;  //删除唯一约束
 69 
 70 alter table a drop primary key;   //删除主键约束
 71 alter table a add primary key(a_id);  //添加主键约束
 72 
 73 alter table a modify id int;  //删除自动增长
 74 alter table a modify id int auto_increment;  //添加自动增长
 75 
 76 alter table b add constraint AB_foreign foreign key(b_id) references a(a_id);  //添加外键
 77 alter table b drop foreign key AB_foreign;  //删除外键
 78 
 79 
 80 
 81 //视频4 用户和编码
 82 
 83 mysql支持事务
 84 原子性:所做操作要么完成,要不完成,不会执行过程终止
 85 一致性:执行操作前和操作后,数据完整性没有破坏
 86 隔离性:同时读写修改同一个数据,保证数据的一致性
 87 持久性:对数据的修改时持久的,即使系统破坏数据也不会消失
 88 
 89 begin  //记录开始
 90 rollback  //回溯到记录开始
 91 commit   //提交操作
 92 
 93 show create table student;  //显示表信息
 94 
 95 1编码问题
 96 create database juhao character set gbk;    //创建数据库自定义编码
 97 create table student(id int)charset utf8;   //创建数据表自定义编码
 98 
 99 2,编码问题-在vim配置  //看ppt
100 vim /etc/mysql/mysql.conf.d/mysqld.cnf
101 
102 default -character -set =utf8
103 
104 character -set -server=utf8
105 
106 重启数据库:sudo service mysql restart
107 
108 
109 3,远程连接-配置
110 vim /etc/mysql/mysql.conf.d/mysqld.cnf
111 第一:修改监听ip
112 bind 0.0.0.0
113 第二步:给用户添加远程访问权限
114 update user set host ='%' where user='root';
115 第三步:重启数据库
116 sudo service mysql restart
117 
118 远程连接
119 user juhao;
120 select user,host from mysql.user;
121 
122 
123 
124 4用户权限  /root账号权限太大,一般只在管理数据库的时候,一般项目都是创建一个用户去操作
125 create user 'juhao'@'%' identified by '19921019';   //创建用户
126 
127 grant usage,select on *.* to juhao@’%‘ identified by '19921019';  //数据库用户权限设置
128 
129 取消用户授权:
130 revoke privilege on databasename.tablename from 'username'@'%';
131 
132 exit
133 sudo service mysql restart;   //重启数据库
134 mysql -ujuhao -p19921019;   //登陆普通用户账号
135 
136 常用权限:
137 all 允许做任何事情
138 usage 只允许登陆
139 alter 修改已经存在的表
140 create  创建表或库
141 select  查找数据
142 update  修改数据
143 insert  增加表的记录
144 delete  删除表的记录
145 drop    删除库或表

猜你喜欢

转载自www.cnblogs.com/tiantiancode/p/12900187.html