Mysql数据库必备命令操作
1、对数据库的操作
1)新建数据库
1 create database jfedu; 创建名为jfedu数据库;
2)查询数据库
1 show databas; 查看所有的数据库;
2 show tables; 查看数据库里有多少张表;
3 show variables like '%char%'; 查看数据库字符集;
4 set character_set_server=utf8; 设置数据库字符集
5 show engines; 查看MySQL存储引擎;
6 show variables like '%storage_engine%'; 查看MySQL默认的存储引擎;
7 alter table t1 engine=innodb; 修改MySQL t1表存储引擎;
2、对表的操作命令
1)新建表
mysql数据库主键作用?
①主要的作用主要确定该数据的唯一性。比如说ID=1,NAME=张三。我们要在数据库中,找到这条数据可以使用select * from 表 where id=1 这样就可以把张三查找出来了。而这个张三,也可以出现同名,所有用ID来做主键。
②而你说的insert into 是插入操作。当ID设置为了主键,再插入一个相同的主键值,就为报错误,并不会更新,你想要个更新就必须执行 UPDATE
③PRIMAPY是主键的意思,表示定义的该列值在表中是唯一的意思,不可以有重复。
1 create table t1 (id varchar(20),name varchar(20)); 创建名为t1表,并创建两个字段,id、name,varchar表示设置数据长度,用字符来定义长度单位,其中1汉字=2字符=2Bytes; 2 create table Student(id int not null comment '用户'); 创建一个表并给字段加注释 4 CREATE TABLE t1( id int not null primary key,name char(20)); 创建一个表并指定主键是id 5 CREATE TABLE t1( id int not null,name char(20),primary key (id,name)); 复合主键 ,创建一个表并指定主键是id和name 6 CREATE TABLE t1(id int not null default 0 primary key,name char(20) default '1'); 创建一个带默认值的表 7 CREATE TABLE student(id INT PRIMARY KEY AUTO_INCREMENT COMMENT '学号',name VARCHAR(200) COMMENT '姓名',age int COMMENT '年龄') COMMENT='学生信息' 创建一个表,并给字段和表同时添加注释
default 默认值:设定默认值,则如果插入数据时,该字段没有给值,就使用它。
not null 设定为不为空
primary key 设置为主键,就是通过该字段的值,可以唯一确定一行数据;并且默认不为空
AUTO_INCREMENT 可以理解为自动递增的意思,每增加一条记录,值会自动加1。
2)向表中插入数据
1 insert into t1 values ("1","jfedu"); 向表中插入数据;
3)查询表的内容
1 select * from t1; 查看t1表数据内容; 2 Select * from t1 where id=1 and age =’jfedu’; id、age多个条件查询; 3 desc t1; 查看t1表字段内容; 4 show full columns from t1; 查询表t1的所有字段(列column)内容
5 show index from t1; 查看表的索引模式; 6 select COLUMN_NAME,COLUMN_COMMENT from information_schema.COLUMNS where table_name='test1' and table_schema='School'; 意思是选择列名,列注释从数据库information_schema的表COLUMNS
4)修改表中内容
1 alter table t1 modify column name varchar(20); 修改name字段的长度;
2 alter table t1 modify column name char(40) not null; 修改name字段为非空;
3 alter table t1 change name student char(20) not null; 修改列名;
4 alter table t1 add age char(20) not null; 增加列; 5 update t1 set name='jfedu.net' where id=1; 修改name字段的内容;
5)删除表
1 delete from t1 ; 清空表内容; 2 drop table t1 ; 删除表;
3、数据库权限设置
1)对数据库授权
1 grant all on jfedu.* to test@localhost identified by 'pas'; 授权localhost主机通过test用户和pas密码访问本地的jfedu库的所有权限; 2 grant select,insert,update,delete on *.* to test@”% identified by ‘pas’; 授权所有主机(不包括localhost)通过test用户和pas密码访问本地的jfedu库的查询、插入、更新、删除权限; 3 grant all on jfedu.* to test@’192.168.111.118’ identified by 'pas'; 授权192.168.111.118主机通过test用户和pas密码访问本地的jfedu库的所有权限;
2)删除权限
1 revoke all on *.* from dba@localhost; 删除一条权限 2 delete from mysql.user Where User='discuz'; 删除一个用户
3)查询权限
1 select distinct concat('User: ''',user,'''@''',host,''';') from mysql.user; 查看MYSQL数据库中所有用户
2 select * from mysql.user where user='zabbix'\G; 查询用户jingfeng的所有权限 3 show grants for jingfeng; 查询用户jingfeng的所有权限