码迷,mamicode.com
首页 > 数据库 > 详细

MySQL语句

时间:2019-05-29 23:41:47      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:mysql   mysql语句   mod   特殊   其他   自动   msyql   修改字段   database   

查看数据库有三种方式:
第一种,直接进入数据库查看
mysql> show databases;
技术图片
1.intformation_schema数据库保存了MySQL服务器所有的信息。如数据库名,数据库表,标蓝的数据类型,访问权限等。
2.performance_schemaMySQL5.5版本新增的新性能优化的引擎,主要用于收集数据库服务器的性能参数。MySQL用户不能创建存储引擎为performance_schema的表。
3.mysql是数据库,保存俩账号信息,权限信息等。
4.sysmysql5.7增加了sys系统数据库,可以快速了解系统的元数据,元数据是关于数据信息的数据。如数据库名或表名,列的数据类型,或访问权限等。

第二种,以行的方式显示:
mysql> show databases\G;
技术图片
第三种,在shell中查看:
[root@localhost ~]# mysql -e ‘show databases‘ -uroot -p123456
技术图片
创建数据库:
语法: create database 数据库名;
创建数据库主义事项:mysql数据存储区以目录方式表示mysql数据库。因此数据库名,必须以系统约束的目录名字一致,不允许文件和目录名中有特殊符号,在mysql数据库名中字母会被自动删除。
[root@localhost ~]# ls /data/mysql/data/
技术图片
遵从目录约束,数据库名不能超过64个字符,包含特殊字符或者全部由数字或保留字组成的名必须要用反引号`括起来(反引号括起来,在查看数据库时反引号不显示)。数据库不能重名。
有特殊符号的数据库名,用反引号括起来,可以创建。
技术图片
有特殊符号的数据库名不用反引号括起来,不可以创建
技术图片
在查看数据库时不显示反引号。
技术图片
新创建的数据库会存放在数据库目录当中。(使用特殊符号的数据库在目录中根据当前系统默认算法显示)
技术图片
查看数据库目录:
进入到要操作的数据库当中
mysql> use HA-test

查看当前所在数据库的位置
mysql> select database()
技术图片
在命令行进入数据库:
[root@localhost ~]# mysql -uroot -p HA-test
查看登录的时间,登录的用户,登录到的数据库,
mysql> select now(),usr(),database();技术图片
删除数据库:
mysql> drop database HA-test;

查看数据库
msyql>show databases;

在生产环境下,在命令行使用 mv命令把数据库目录下的库移动到别的目录下,即从mysql数据库中删除了库又做了备份。
想要恢复HA数据库在从/tmp把HA库移动到数据库目录下

使用if exists字句避免删除不存在的数据出现错误信息(一般使用在shell脚本中,

如果不使用if exists就会报错):
mysql> drop database if exists HA-test; #如果存在则删除

也可以在创建数据库时使用
mysql> create database if not exists HA; #如果不存在则创建

关于表的操作:
创建表create:
语法:create table 表名 (字段名 类型)
mysql> use HA;
mysql> create table se(id int(20),name char(40),age int);

如果不进入数据库,创建表:
语法:create table 数据库名.表名 (字段名 类型)
msyql> create table HA.se(id int(20),name char(40),age int);

查看表相关信息:
mysql> use HA;
mysql> show tables;

查看表结构:
使用desc命令来查看表结构(desc 表名)。可以不进入数据库查看 则输入 desc 数据库名.表名。
mysql> use HA;
mysql> desc se;

不进入库查看表:mysql> desc HA.se;

还可以用以下命令查看表结构,会一种就可以。
mysql> explain mysql.user;
mysql> show columns from mysql.user;
mysql> show fields from mysql.user;
mysql> show columns from mysql.user like ‘%user‘;

查看创建表执行了哪些命令:
mysql> show create table se\G
技术图片
指定默认存储引擎和字符集:
如果不指定存储引擎和字符集,默认使用安装mysql时的存储引擎和字符集。
mysql> create table student2(id int(20),name char(40),age int) ENGINE=InnoDB(或其他存储引擎) DEFAULT CHARSET=utf8(或其他字符集);
技术图片

删除表:
mysql> drop table 表名。

禁止预读表信息:
没有禁止前装换数据库会有提示信息(禁不禁止都没不影响操作)
技术图片
解决这个问题可以再登录mysql时添加参数-A
[root@localhost ~]# mysql -uroot -p -A
技术图片

修改表名称alter:
语法:alter table 表名 rename 新表名;
技术图片

修改表中的字段类型:
语法:alter table 表名 modify 修改字段名修改类型
查看students表结构
mysql> desc students;
技术图片
mysql> alter table studens modify id int(10);技术图片

修改表中的字段类型和字段名称:
语法:alter table 表名 change 源字段名 新字段名 新字段类型;
mysql> alter table studens change name gname char(20);技术图片

注意:change和modify的区别:
change即可以列重命名又可以更改列类型。modify只能更改列类型,不可以给列重命名。
技术图片
在表中添加字段:
语法:alter table 表名 add 字段 字段类型。
在表中添加字段但并不是说可以随意添加字段的值,例如enum是枚举类型,他只能输入管理员定义的值。

技术图片

查看表结构技术图片

在sex行中输入其它,而不是m或w就会报错:

技术图片
输入m或w就不会报错:

技术图片

同时插入多条记录:mysql> insert into studens values(1,‘lisi‘,24,‘m‘),(2,‘zhangsan‘,25,‘w‘);

查询表中记录select:
语法:select (或查询的字段名) from 表名称; #号表示查询表中所有记录
查询表中所有记录

技术图片

当表中记录比较多时可以使用\G查看

技术图片
只查询表中某个字段的内容
mysql> select gname from studens;技术图片

查看别的库的表或不在本数据库上查看表
语法:select 字段 from 数据库名.表名; #等同于先进入use数据库,然后再看表内容
技术图片

删除表中记录:
删除指定的行:语法 delete from 表名 where 要删除的条件
例如:删除studens表中的id为1的行
mysql> select id from studens;

技术图片
mysql> delete from studens where id=1;技术图片
mysql> select id from studens;

技术图片

删除为空的行:语法 delete from 表名 where 条件 is null;
例如:删除age为空的行

技术图片

mysql> delete from studens where age is null;技术图片

技术图片

更新记录:
语法:update 表名 set 条件 where 条件;
例如:把表中id为2的记录age更新为30
mysql> update studens set age=‘30‘ where id=2;

技术图片技术图片

更新表中所有列的值都更新
例如:把表中所有gname都更新为zhangliu;
mysql> update studens set gname=‘zhangliu‘;

技术图片

技术图片

MySQL语句

标签:mysql   mysql语句   mod   特殊   其他   自动   msyql   修改字段   database   

原文地址:https://blog.51cto.com/14356496/2402292

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!