学习sql规则,可以让mysql服务器帮咱们做其他操作
1、操作数据库(文件夹)
create database 数据库名 default charset utf8;
表示整个数据库是utf8的格式
use 数据库名;
使用这个数据库
查看数据库
show databases;
删除数据库
drop database 数据库名;
数据库没有修改这一说,如果你想修改,就删除数据库,再创建数据库
2、操作表(文件)
use 数据库名;
先进入数据库
show tables;
然后看这个数据库下有哪些表
创建表
create table 表名(列名1 数据类型,列名2 数据类型) engine=innodb default charset=utf8;
创建表的时候也需要给它设置编码,一般设置为utf8,我们还可以加上engine=innodb,表示引擎是innodb,innodb是支持出错后的回滚操作的,这叫事务,原子性操作,一旦中间任何位置出了差错,都要回滚到原来的状态。
mysql只有引擎是innodb的时候,才支持事务,咱们的程序一般情况下都是支持事务操作的,所以引擎就设置成innodb,如果我的网站不允许,不会出现这种事务性的操作,那你选什么引擎都可以,推荐选myisam,因为它相对于innodb来说,支持全局索引,相对来说存储的时候速度更快一点,但就是不支持事务。
引擎其实就是一段代码,如果是这个引擎,以这种方式,那个引擎以那种方式,相当于写了if else判断。
举个例子
create table t1(id int,name char(10)) default charset=utf8;
我们创建了一个表叫t1,用的utf8编码,这个表有2列
int为数字类型,char是字符串类型,后面括号的10表示只能有10个字符,如果超过10个就只取前面10个,永远只占10个字符。 查看表 show tables; create table t2(id int null,name char(10))engine=innodb default charset=utf8; 数据类型后面还可以加null,表示可以为空,这一列就不用插入数据,加not null表示不可以为空,不写默认不为空 insert into t2(id,name)values(1,"张三"); 我们正经插入一条数据 insert into t2(name)values("zhangsan"); 然后我们把id拿掉,只写name,是不是表示只给name这一列插数据呀,后面的值只写一个zhangsan,这样写也能插进去 我们查询一下表里的数据 咱们在后面还可以加default,default 1表示默认是1,就是咱们不填值的时候帮咱们填的值 还有唯一标识,表示每个人的东西不能重复,所以可以加上auto_increment primary key,如果你加上它之后,这一列就会自增,就是从1开始,它每次都是加1,这一列你还不用给它插数据。 在mysql里,还有一个约束,如果你是自增的,就必须是个key,这个key称为索引。 和auto_increment搭配的是primary key primary key有2个作用: 1、表示约束,约束的条件是不能重复,且不能为空 如果有一列设置了primary key,就表示不能为空,也不能重复 2、加速查找 就是你查的时候会特别快,因为它会给你生成另外一个文件,另外一个文件会帮咱们去查找,在这只要知道它会查找就可以了,讲索引的时候会细说。 1个表里只能有一个自增列并且只能有1个主键,auto_increment和primary key还有绑定关系的,如果你设置了auto_increment,就必须得是primary key,不然就报错了 一般情况下,咱们只要是auto_increment都会给它设置成primary key的create table t1( id int not null auto_increment primary key, name char(10) )engine=innodb default charset=utf8;
上面这段sql表示创建1个表,表里有2列,一般我们让id自增的,它是个int类型,not null表示不允许为空,auto_increment表示它会自增,primary key表示它会约束,再加上一个加速查找,这个只对id这一列生效,跟其他列没有关系。
自增列按照上面这种写法,它作为这张表里每一行数据的唯一标识
清空表
delete from 表名;
表示清空这张表里的内容,下次再插入数据,它那个自增id是根据原来的继续往后走
truncate table 表名;(推荐)
这条命令清空表之后,再插入数据,我们查询看到是从1开始了
truncate比delete要快得多,数据量大的话会特别明显
删除表
drop table 表名;
3、操作表(文件)里的内容 查看表里的数据 select * from 表名; *表示所有的列 插入数据 insert into 表名(列名1,列名2) values(数字,"字符串"); 表示在表里往这2列插入数据 标签:10,数据库,primary,数据表,innodb,key,Mysql,id From: https://www.cnblogs.com/z-x-y/p/17594548.html