MySQL核心--表操作
- 表操作一
- 表操作二(CRUD操作)
表操作一
-
创建表
比较规范的写法,关键字应该要大写,其他比如表名,字段这些自定义的可以小写
ENGINE=INNODB DEFAULT CHARSET=utf8 指定存储引擎以及默认的字符集,可以在配置文件中进行配置,也可以在创建表时指定
CREATE TABLE user (id INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) UNIQUE NOT NULL, age TINYINT NOT NULL, sex ENUM('W','M') NOT NULL )ENGINE=INNODB DEFAULT CHARSET=utf8;
-
查看表的结构
user是表名
DESC user;
-
查看创建表的SQL语句
SHOW CREATE TABLE user\G
-
删除表(不建议使用)
DROP TABLE 表名;
表操作二(CRUD操作)
-
增加操作
- 方式一
insert into user(name,age,sex) values('张三',18,'W'); insert into user(name,age,sex) values('李四',28,'W'); insert into user(name,age,sex) values('王五',38,'M'); insert into user(name,age,sex) values('六九',48,'M'); insert into user(name,age,sex) values('七爸',58,'W');
- 方式二
insert into user(name,age,sex) values('张三',18,'W'),('李四',28,'W'),('王五',38,'M'),('六九',48,'M'),('七爸',58,'W');
请问:请问上面两种插入方式有什么区别?
无论是在mysql shell还是在代码上操作,我们都是作为mysql client,我们要向mysql server发送SQL语句,而一条SQL语句的执行要经过3个阶段:
-
client和server进行tcp三次握手,建立通信链路;
-
然后client发送SQL语句到server,server接收并处理,然后返回处理结果;
-
最后server和client将会进行四次挥手,断开连接。
所以第一种方法需要 和server建立五次连接,处理五条sql语句,而第二种只需要建立一次连接
拓展:项目相关–>数据库连接池
-
删除数据
delete from 表名 [where id=6];
id字段是一个自增字段,那么如果删除一个数据后,再添加一个一条数据,该字段如何取值呢?
该字段会继续向下取值,比如表中已有id 1到5,删除了id=1的数据后,添加了一条新的数据,这条数据的id字段的取值将为6,当然这里id字段为无符号整型,当其达到取值上限制后,并不会绕回去重新取值,所以要根据数据量选取合适的数据类型
-
删除表
drop table 表名;
-
查询操作
select * from user; select 字段1,字段2,.... from 表名 [where id=1];
-
更新操作
UPDATE user SET age=age+1 [where...];