赞
踩
语法:
create database [if not exists] db_name [create_specification] [create_specifation];
create_specifation:
[default] character set charset_name
[default] collate collation_name
说明:
如果修改了/etc/my.cnf
下的文件,我们是不用带上默认选项的,他会自动默认使用字符集utf8
,校验规则utf8_general_ci
查看字符集和校验规则:
show variables like 'character_set_database';
show variables like 'collation_database';
结果演示:
show charset;
结果展示:
字符集主要控制用什么语言,比如utf8可以适配中文,不会出现报错。
show collation
结果展示:
例子:建立两个数据库,在里面分别见两张表,然后查询
utf8_general_ci
不区分大小写:
mysql> create database utf8_test collate utf8_general_ci; Query OK, 1 row affected (0.00 sec) mysql> use utf8_test; Database changed mysql> create table person (name varchar(20)); Query OK, 0 rows affected (0.02 sec) mysql> desc person; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | name | varchar(20) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 1 row in set (0.01 sec) mysql> insert into person values ('a'); Query OK, 1 row affected (0.00 sec) mysql> insert into person values ('A'); Query OK, 1 row affected (0.01 sec) mysql> insert into person values ('b'); Query OK, 1 row affected (0.01 sec) mysql> insert into person values ('B'); Query OK, 1 row affected (0.01 sec) mysql> select * from person where name='a'; +------+ | name | +------+ | a | | A | +------+ 2 rows in set (0.00 sec)
utf8_bin
区分大小写:
mysql> use utf8_bin_test; Database changed mysql> show tables; Empty set (0.00 sec) mysql> create table person(name varchar(20)); Query OK, 0 rows affected (0.03 sec) mysql> insert into person values ('a'); Query OK, 1 row affected (0.01 sec) mysql> insert into person values ('A'); Query OK, 1 row affected (0.01 sec) mysql> insert into person values ('b'); Query OK, 1 row affected (0.01 sec) mysql> insert into person values ('B'); Query OK, 1 row affected (0.01 sec) mysql> select * from person where name ='a'; +------+ | name | +------+ | a | +------+ 1 row in set (0.00 sec)
show databases;
注意带s,表示复数。
show create database name;
说明:
/* !40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin * /
这不是注释!!这表示当前数据库版本大于4.01,就执行这句话。语法:
alter database db_name [alter_specification] [alter_specification];
alter_specification:
[default] character set charset_name
[default] collate collate_name
说明:对于数据库的修改主要是指修改数据库的字符集、校验规则
注意:我们一般强烈不建议修改数据库名字以及属性!
注意:不要随意删除数据库!
执行删除之后的结果:数据库内部看不到对应的数据库。
对应的数据库文件夹被删除,级联删除,里面的数据表全部被删。
show processlist;
可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。
语法:
create table [if not exists] table_name(
field1 datatype,
field2 datatype,
field3 datatype
) charset set 字符集 collate 校验规则 engine 存储引擎;
说明:
实例:
通过show create table table_name \G;
\G去除一些格式,方便查看
默认采用InnoDB
,stu表在数据库中对应2个文件
而我们可以看一下采用MyISAM
,它对应的表下面有3个文件
desc table_name;
我们可以对于某表的结构、字段名字、字段大小、字段类型等等作后续修改,但是强烈不建议修改,在创建的时候最好声明定义好表的结构。
语法:
alter table table_name add(column datatype );
alter table table_name modify(column datatype );
alter table table_name drop(column);
现在有这样一张表:
我们在其基础上进行修改:
1️⃣在表中增加一个字段,用于保存图片路径。
如果你的表中已经有了数据了,那么新增加的字段默认就是NULL。
还可以控制新增列的位置:
注意:只能有after,没有before的说法!我们特别不建议,将一个字段往前插入,最好还是在末位插入新字段。
2️⃣删除一个字段,直接删除名字即可
注意:删除的时候,如果某列有数据的,那么数据也会没有。
3️⃣调整一个字段
4️⃣修改名字
语法:
drop table table_name;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。