您的位置:首页 > 数据库 > MySQL

mysql数据库的表创建,删除及增删改查和建表之后添加主外键

2015-06-26 09:59 609 查看
---------------------数据库和表的创建部分-------------------------

-- 创建数据库

create database db_test

-- 删除数据库

drop database db_test

-- 创建数据表

-- 数值类型

TINYINT 非常小的整数

SMALLINT 小整数

MEDIUMINT 中等大小的整数

INT 标准整数

BIGINT 大整数

FLOAT 单精度浮点数

DOUBLE 双精度浮点数

DECIMAL 以字符串形式表示的浮点数

-- 字符串型

CHAR 固定长度的字符串

VARCHAR 可变长度的字符串

TINYBLOB 非常小的BLOB(二进制大对象)

BLOB 小BLOB

MEDIUMBLOB 中等大小的BLOB

LONGBLOB 大BLOB

TINYTEXT 非常小的文本字符串

TEXT 小文本字符串

MEDIUMTEXT 中等大小的文本字符串

LONGTEXT 大文本字符串

ENUM 枚举集合:数据列的取值僵尸这个枚举集合中的某一个元素

SET 集合:数据列的取值可以是这个集合中的多个元素

-- 日期/时间类型

DATA 日期值,格式CCYY-MM-DD

TIME 时间值,格式hh:mm:ss

DATATIME 日期加时间值,格式CCYY-MM-DD hh:mm:ss

TIMESTAMP 时间戳值,格式CCYYMMDDhhmmss

YEAR 年份值,格式为CCYY

CREATE TABLE t_student (

stuid int(10) NOT NULL auto_increment,

stuname varchar(10) NOT NULL,

stuage int(10) NOT NULL,

PRIMARY KEY (stuid)

)

-- 删除数据表

drop table t_student

---------------------数据的查询部分-------------------------

--查询全部字段

select * from t_student

--查询部分字段的全部行记录

select stuname,stuage from t_student

--查询部分字段的部分行记录(条件为年龄是25)

select stuname,stuage

from t_student

where stuage=25

--查询部分字段的部分行记录(条件为年龄是小于等于25)

select stuname,stuage

from t_student

where stuage<=25

--查询部分字段的部分行记录(条件为年龄等于20或25的记录)

select stuname,stuage

from t_student

where stuage in(20,25)

--查询部分字段的部分行记录(条件为年龄不等于20或25的记录)

select stuname,stuage

from t_student

where stuage not in(20,25)

--查询部分字段的部分行记录(条件为年龄在20到25的范围内的记录)

select stuname,stuage

from t_student

where stuage between 20 and 25

--查询部分字段的部分行记录(条件为年龄不在20到25的范围内的记录)

select stuname,stuage

from t_student

where stuage not between 20 and 25

--查询部分字段的部分行记录(条件为年龄不在20到25的范围内的记录)

select stuname,stuage

from t_student

where stuage>20 and stuage<25

--查询部分字段的部分行记录(条件为年龄不在20到25的范围内的记录)

select stuname,stuage

from t_student

where stuage<20 or stuage>25

--(order by 关键字排序默认升序)

SELECT * FROM `t_student` order by stuage asc

--(降序排序)

SELECT * FROM `t_student` order by stuage desc

--(难点:多列排序)

SELECT * FROM `t_student` order by stuage,stuname desc

--分页查询(分段查询)

--参数1:查询的起始位置之后

--参数2:查询的绝对条数

SELECT * FROM `t_student` limit 0,3 --查询区间为1到3条记录

SELECT * FROM `t_student` limit 3,3 --查询区间为4到6条记录

--分组查询(分类查询)

select * from t_student group by stuname

--分组和排序的组合查询(分类排序查询)

select *

from t_student

group by stuname

order by stuid asc

--过滤、分组、排序组合查询

SELECT * --选择所有列

FROM t_student --从哪里查

WHERE stuage >=22 --过滤记录条件

AND stuage <=25

GROUP BY stuname --分组

ORDER BY stuid ASC --排序

LIMIT 0 , 30 --分页

--查询第一条记录

SELECT * FROM `t_student` order by stuid asc limit 0,1

--查询最后一条记录

SELECT * FROM `t_student` order by stuid desc limit 0,1

--查询一共有多少条记录

select count(*) from t_student --低效统计

select count(1) from t_student --高效统计

--查询所有记录中的年龄最大值

select max(stuage) from t_student

--查询所有记录中的年龄最小值

select min(stuage) from t_student

--查询所有记录中的年龄求和

select sum(stuage) from t_student

---------------------------------数据插入部分---------------------------------

--三种插入数据的语法,数据添加原则:字段数和value的个数要一一对应

insert into t_student(stuid,stuname,stuage) values(1,'zhangsan',25);
//默认添加所有字段值

insert into t_student values(1,'zhangsan',25);
//默认添加所有字段值(简写方式)

insert into t_student values(null,'zhangsan',25);
//添加所有字段值,如果stuid字段为自动增长,则添加时可以为null

insert into t_student(stuname,stuage) values('zhangsan',25);

insert into t_student values(null,'zhangsan1',20);

insert into t_student values(null,'zhangsan2',21);

insert into t_student values(null,'zhangsan3',26);

insert into t_student values(null,'zhangsan4',25);

insert into t_student values(null,'zhangsan5',24);

insert into t_student values(null,'zhangsan6',25);

-----------------------数据修改部分-------------------------

--批量更新

update t_student set stuname='admin'

--精确更新一个字段

update t_student set stuname='zhangsan1' where stuid=1

--精确更新多个字段

update t_student set stuname='zhangsan2',stuage=22 where stuid=2

-----------------------数据删除部分-------------------------

--精确删除某一条记录

delete from t_student where stuid=1

--批量删除记录

delete from t_student where stuage>25

--全部删除记录

delete from t_student

----------------------- 高级数据操作 ----------------------

-- 偷表结构和表数据(全部)

-- create table news1 select * from news

-- create table news3(部分)

-- select id,add_time from news

-- 偷表结构

-- create table news2 select * from news where 1=2

-- 偷表数据(偷别人的数据)

-- insert into news2

-- select * from news1

-- 偷表数据(偷自己的数据)

-- insert into news2

-- SELECT * from news2;

-- 跨数据库偷表结构和表数据

-- CREATE table TEMP

-- SELECT * from oa.sysfun;

-- 2.0 显式内联

SELECT * FROM student as a INNER JOIN score AS b ON a.id = b.stu_id;

-- 隐式内联

SELECT a.*, b.c_name, b.grade FROM student as a,score as b WHERE a.id = b.stu_id;

--2.1、左外连接

select * from tab1 as a left join tab2 as b

on a.id = b.id

--2.2、右外连接

select * from tab1 as a right join tab2 as b

on a.id = b.id

--2.3、全外连接

select * from tab1 as a full join tab2 as b

on a.id = b.id

-- 建表之后添加主外键--

-- ALTER TABLE student ADD CONSTRAINT fk_student_score FOREIGN KEY (id) REFERENCES score(stu_id);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: