mysql:库的增删改查,表的增删改查,数据的增删改查
create database test;
查看所有数据库:show database;
use test;
结果:Database changed;
drop database test;
ps:mysql数据库大小写不区分
CREATE TABLE t_user(
name VARCHAR(20) NOT NULL COMMENT '名字',
sex INT NOT NULL COMMENT '性别,1代表男,2代表女'
)ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT '用户表';sex INT NOT NULL COMMENT '性别,1代表男,2代表女'
)ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT '用户表';
解释一下:我的表名字叫t_user 表的结构大概是这么样子的:
create table tablename(
字段名 字段数据类型
字段名 字段数据类型
...
)engine=InnoDB default charset=utf8 comment '描述'
engine 就是存储引擎,InnoDB支持事务,行级锁定,外键,分布式
charset 就是表输入字符类型 utf8支持中文西文字符,咱这是中国,为了在使用数据库过程中不出现乱码及不知名错误,设置为charset=utf8可以避免这些问题。
有人可能会问,我创建表时没有写什么engine、什么default charset也没发现有什么不对啊。这个你可以测试一下,这些在你创建表的时候,它给你默认加上了,我们显示的写出来就是为了方便其他人查看当然最终方便的是自己(如果,你的mysql默认配置不一样就可能在使用数据的时候会出现一些问题,配置文件在你mysql安装目录下my.ini文件可以查看和修改)。comment就是添加描述。
如果我们需要查看表定义:describe t_user;[t_user就是表名]
如果我们需要查看表详细定义:show create table t_user;
| t_user | CREATE TABLE `t_user` (
`name` varchar(20) NOT NULL COMMENT '名字',
`sex` int(11) NOT NULL COMMENT '性别,1代表男,2代表女'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表'
drop table t_name1;
哈哈,不要说哪来的表t_name1;这个表示刚才我测试创建表只写字段不写其他的,然后查看表详细定义会出现什么内容而创建的。现在正好拿来删了。机智如我
看看删了没:describe t_name1;
结果:ERROR 1146 (42S02): Table 'sqltest.t_name1' doesn't exist
这里表不存在了,说明删除成功。看看错误编号是1146,不同的错误类型出现的编号不一样,一般语法错误是1064(42000)
alter table t_user rename t_student;
describe t_student;
可以看到表名已经修改成功
ALTER TABLE t_student ADD descri VARCHAR(300) AFTER sex;
查看表字段是否添加成功:
describe t_student;
先添加一个字段:
ALTER TABLE t_student ADD eeee VARCHAR(300) AFTER sex;
ALTER TABLE t_student DROP eeee;
DESCRIBE t_student;
修改字段数据类型modify:
ALTER TABLE t_student MODIFY sex CHAR(5);
DESCRIBE t_student;
修改字段的名字change:
ALTER TABLE t_student CHANGE descri evaluate VARCHAR(300);
DESCRIBE t_student;
change关键字也可以同时修改字段名字和数据类型:
alter table 表名 change 旧字段名 新字段名 新数据类型;
INSERT INTO t_student VALUES('张三','男','很帅');
INSERT INTO t_student VALUES('王小丫','女','漂亮,知书达理');
查询所有*:SELECT * FROM t_student;
条件查询:SELECT * FROM t_student WHERE NAME='张三';
也有根据你所需要的字段数据,条件查询:SELECT sex,evaluate FROM t_student WHERE NAME='王小丫';
结果:+------+-----------------------+
| sex | evaluate |
+------+-----------------------+
| 女 | 漂亮,知书达理 |
+------+-----------------------+
分页查询limit:
先弄点数据进去:
INSERT INTO t_student VALUES('张三1','男','很帅');
INSERT INTO t_student VALUES('王小丫1','女','漂亮,知书达理');
INSERT INTO t_student VALUES('张三2','男','很帅');
INSERT INTO t_student VALUES('王小丫2','女','漂亮,知书达理');
INSERT INTO t_student VALUES('张三3','男','很帅');
INSERT INTO t_student VALUES('王小丫3','女','漂亮,知书达理');
查询:SELECT * FROM t_student LIMIT 2,3;
结果:
name sex evaluate
---------- ------ -----------------------
张三1 男 很帅
王小丫1 女 漂亮,知书达理
张三2 男 很帅
语法:select * from 表名 limit 起始下标,显示的数据条数
ps:起始下标与数组一样,都是以0开始。
UPDATE t_student SET evaluate='很帅,搞基' WHERE NAME='张三';
DELETE FROM t_student WHERE NAME='王小丫3';
总结:库的增删改查,表的增删改查,数据的增删改查,都是记住那几个关键字,然后可以自己做测试,在将sql语句写进语法之前如果不能确定,可以自己先弄个表测试一下,不然代码写好了,一运行出现错误就不好了。如果有错漏之处,以及建议欢迎来信,留言
补:刚看阿里的开发公约发现,说明: MySQL在 Windows下不区分大小写,但在 Linux下默认是区分大小写。因此,数据库下默认是区分大小写。