存储引擎:
查看所有支持的引擎:
show enginesG
查看正在使用的引擎:
show variables like 'storage_engine%';
创建表时可以指定引擎:
create table t1(id int)engine=innodb;
表的操作:
创建表:
语法: create table 表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型[(宽度) 约束条件] ); 注意:
1. 在同一张表中,字段名是不能相同 2. 宽度和约束条件可选 3. 字段名和类型是必须的
创建表:
create database db1 charset utf8; # 注这里不能写utf-8 use db1; create table t1( -> id int, -> name varchar(50), -> gender enum('male','female'), -> age int(3) -> );
show tables;
desc table1;
可以看到上面的表中gender这个字段在设置时将male后加了个换行,所以这要对这个字段时行修改:
alter table table1 modify gender enum('male', 'female')
修改完成!
向表中插入数据:
insert into table1 values( (1, 'jack', 'male', 18), (2, 'andrew', 'male', 20), (3, 'Mary', 'female', 18); Select * From table1;
编码问题:
有时不注意就会发现数据库出现乱码,很明显这出现了编码问题。
可以看到此处插入中文出现错误,因为编码格式为lantin
解决方法:
方法一:
删除数据旧的数据库,重建新数据库,并指定编码:
Drop database db2;
Create database db2 charset='utf8';
方式二:
修改:
Alter table t1 charset latin1; Show create table t;
这时可能你把表的编码改了,但某个指定的字段并没有修改,这时就需要修改字段名:
alter table t1 modify name varchar(20);
另应该将数据库编码修改,这样后面再创建
永久性解决编码问题的方法:
#1. 修改配置文件 [mysqld] default-character-set=utf8 [client] default-character-set=utf8 [mysql] default-character-set=utf8 #mysql5.5以上:修改方式有所改动 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci [client] default-character-set=utf8 [mysql] default-character-set=utf8 #2. 重启服务 #3. 查看修改结果: s show variables like '%char%'
查看表结构:
Describe t1;
修改表:
视图:
视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,
用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。
下面有两张表:course
teacher: