mysql cmd 条件语句_MySQL基础语句

对于MySQL来讲,最常用的无外乎增、删、改、查四个步骤,其中应用最频繁的为查(select语句)。

本文档列举常用的数据库语句及例子。

一、查看数据库。对于查看数据库来讲,拥有三种方法

1.进入数据库直接查看

mysql> show databases;

c7be5bdbabc5d948658e986238d4d47a.png

查看后默认会看到四个系统数据库,其中

nformation_schema :保存了所有数据库的元数据。注:描述数据的数据叫做元数据。例如:文件夹的属性信息、权限、大小、文件名、文件类型等等。

performance_schema: 是MySQL 5.5版本后新增的性能优化引擎,主要作用用于收集数据库服务器性能参数。注意MySQL是用户不能够创建存储引擎为performance_schema的表的,如果是编译安装,必须是在初始化的过程中使其自主创建。

mysql:属于系统库,里面保存账户及权限信息,管理员可以通过手动更改mysql.user表来设置用户密码。

sys数据库:是用于快速了解系统的元数据信息的,由于该库中存在大量视图及存储过程,从而实现快速查看。

2.以行的方式显示

mysql> show databases \G;

该显示方式对于数据库较多的情况下以更加人性化的方式显示,\G参数可用于大多数命令集,例如show create、show select .....

0f7a5a18c85fa2c5e2d23fb751de71ec.png

3.在shell中查看

mysql -e 后面直接跟SQL语句,这种非交互方式通常应用在脚本当中。

例:[root@Centos4 ~]# mysql -e 'show databases' -uroot -p123456//后面跟用户名及密码,用该身份访问。

二、创建数据库

语法:create database 数据库名;

创建数据库的语法结构非常简单,但需要注意以下四点:

1.在文件系统中,数据库的存取是以目录方式表示,因此数据库的名字必须要求与系统约束目录一致。

2.遵从目录约束

3.数据库名称不允许超过64个字符。包好特殊字符的名字必须有反撇号`` 括起来。

4.数据库不允许重名

例1:mysql> create database test01;

Query OK, 1 row affected (0.00 sec)

例2:mysql> create database `test-02`;

Query OK, 1 row affected (0.00 sec)

0edea76ca5696d3b12666693b5b0b004.png

查看目录结构(我mysql数据存放的位置如下)

c3f045a98965bfce947baaff85f16054.png

三、选择、查看、切换数据库

1.当需要切换数据库时,可以用到use命令+数据库名称;

mysql> use test01;

Database changed

2.当需要查看自己当前所在位置时,需要用到 database()函数。

mysql> select database();

+------------+

| database() |

+------------+

| test01     |

+------------+

1 row in set (0.00 sec)

3.我们也可以直接在shell界面中直接选择我们需要进入的数据库

[root@Centos4 ~]# mysql -uroot -p123456 test01;

40e4e95ce9bf70a44b8a2809af488616.png

//以上表示显示当前时间、当前用户、当前数据库

四、删除数据库

1.由于数据库test-02包含特殊字符,因此需要用反撇号括起。

mysql> drop database `test-02`;

Query OK, 0 rows affected (0.00 sec)

当然以上方法在生产环境中并不推荐,可利用mv命令直接移动数据库文件,防止误删除。

[root@Centos4 ~]# mv /usr/local/mysql/data/test01 /tmp//以你们实际的数据库存放位置为准

2.还可以使用 IF EXISTS 子句来避免删除不存在数据库时出现的错误信息(常用语shell脚本中)

49d8b44aa637ebb4defbed115f7dec3f.png

无论数据库是否存在,都不会产生报错信息。以上表示如果 test-02 数据库存在,则删除。

当然IF EXISTS子句也可应用在创建表中,if not exists 表示如果不存在则创建。

8aff1f26f7eb3932303bdbf2ed280337.png

五、关于表的操作

1.创建表create

语法:create table 数据库名.表名 (字段名 类型,字段名 类型,字段名 类型,.....)

a879c5518e0df7b6528a51b091a87609.png

2.查看表 show tables;

2931a05e98433eeedaf13239e908e2df.png

3.查看表结构

可使用desc命令查看表的结构(列的各个属性)

9bebdb90d5ecae7a53aac16245bf18b3.png

4.查看创建表执行了哪些命令

9002d2f09b52d9affb002f69fd9e97a3.png

5.在创建表时可以指定表的存储引擎和默认字符集

mysql> create table t2 (id int(30),name char(20),age int(10)) engine=innodb default charset=utf8;

Query OK, 0 rows affected (0.00 sec)

cf57f9a87a4ff8a13fa3f6f79c5c7883.png

//表示创建一个名叫t2 的表,默认引擎为innodb 字符集为utf-8

6.删除表

语法相对简单,drop table 表名;

mysql> drop table t2;

Query OK, 0 rows affected (0.00 sec)

7.禁止预读表信息

没有禁止前转换数据库会有提示信息

mysql> use mysql;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with –A

解决这个问题可以在登陆mysql的时候添加参数-A

[root@cong11 ~]# mysql -uroot -p123456 -A

mysql> use mysql;

Database changed    #发现没有提示信息了

8.修改表名称alter

语法:alter table 表名 rename 新表名;

4939848ab835256c28d9d2a1fbb49f50.png

9.修改表中的字段类型

语法:alter table 表名 modify 要修改的字段名和要修改的类型。

1a8086ea15b22efdc746ed4dcb439bb3.png

10.修改表中字段类型和字段名称

语法:alter table 表名 change 原字段名 新字段名 新字段类型;

13df8a9d9a25c7df7769f7aba33cac75.png

注:change和modify的区别为,change需要对列进行重命名更改列的类型,而modify可以改变类型,此时不需要重命名。

11.在表中添加新的列

语法:alter table 表名 add 字段 字段类型;

12fbddaa5f2165865186d478bb7b9791.png

12.在指定列后添加字段

语法:alter table 表名 add 新字段 字段类型 after 旧字段;

25f6cf0cc57303c3932c239fe3184ddf.png

13.删除表中字段

语法:alter table 表名 drop 字段名;

91792e3a778606e378d1921818598fd2.png

六、插入字段insert

语法:insert into 表名 (列名1,列名2,列名3....) values (值1,值2,值3) ;

da3bfe10110befccdc492d64f2d0c224.png

注意:不写列名表示添加所有列名的值。

也可以一条语句插入多个数据,用逗号分隔

989427e0601f70c75659aaaddeb37c74.png

七、查询表中记录select

语法:select * from 数据库.表名称;  ##*号表示查看所有列,由于后面没有跟where子句,表示显示所有行。

1.

44459e52675db9cd1f73a07b46d964e3.png

2.表中内容较多可以使用\G表示以行显示。

46b7d97043b0b09832c03560aaefdfd9.png

3.查询表中某个列的内容,多个列用,逗号分隔

f67a411e52f1a230e374a85aba0aecd7.png

八、删除表中数据(delete)

语法:delete from 表名 [where] 列名=值; (如果不添加where子句将删除所有行)

1.

c8befc1f7e8eac9eb007a8bce32c69c5.png

2.删除age为空的行,需要在where子句后添加 列名 is null; 如果是不为空则是 列名 is not null:

18ee80b0408974b8abb9944d3f69eda7.png

九、更新记录

语法 update 表名 set 列名='新值'  [where] + 条件;

c902ea11b5169fcbae9f8858cefb8392.png

如果不添加where子句删选条件,则更新所有age列的值。同理,一条语句更新多条记录,使用逗号分隔。

ac6ae34bb52dd86e94edaeab3a1e1bea.png

十、MySQL查询排序

语法:select 列名.... from 表名 order by 要排序的列名 asc或desc;升序/降序(默认升序)

02bc84ec3b7b308f4fecb23cd3a1b16a.png

十一、使用and和or进行多条件查询

80ab80927aeaf77c45fee842cbc4bd62.png

如上 and表示并且,or表示或。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值