MySQL用程序代码建表
Posted By_The_Way
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL用程序代码建表相关的知识,希望对你有一定的参考价值。
一、创建表格代码格式
create table <表名>
(
<列名> <数据类型及长度> [not null],
<列名> <数据类型及长度>,
...
<列名> <数据类型及长度>
)
例:
#人员基本信息表
create table Info //建立表名为Info的表格
(
xuhao int primary key auto_increment, //建列名为xuhao的列,数据类型为整数类型,设为主键并且自增长排列
name varchar(50), //建列名为name的列,数据类型为字符串类型,长度为50个字符
sex bit, //建列名为sex的列,数据类型为布尔型
minzu varchar(50), //建列名为minzu的列,数据类型为字符串类型,长度为50个字符
foreign key(minzu) references Nation(code), //对于minzu列建立外键,用表名为Nation的code列为约束
#minzu varchar(50) references Nation(code), //建外键的另一种格式,但是运行后在外键内为空
shengri datetime, //建列名为shengri的列,数据类型为时间类型
height double(6,2) //建列名为height的列,数据类型为小数类型,总长度为6,小数点后留2位
);
命令语句:
primary key 主键
not null 非空
foreign key(Nation) references Nation(Code) 外键
auto_increment 自增长
注意:所有符号必须是英文状态下的
每个表创建完之后加分号
表里面的最后一列写完之后不要加逗号
二、删除表格代码格式
drop table <表名>
三、表格内数据的操作
大致可分为增、删、改、查 CRUD
1.添加数据
insert into <表名>[(列1,列2...)] values (<‘值1’>[,‘值2’...])
注意:
(1)列与值要匹配(数量,类型,排序)
(2)列可以省掉,但值必须与表中的总列数和列的次序完全对应
(3)自增长列列名可以省,但其值的位置不能省,不给明确值的要给自增列赋值‘’
例:
insert into Info(name,minzu,shengri)values(‘’,‘张三’,‘n003’,‘1992-2-2’) //在Info表中添加姓名为张三,民族为n003,生日为1992-2-2 其中‘’为自增长列表示顺序增加,其余列为null
2.删除数据
delete from Brand //删除所有数据
delete from car where code=‘c001‘ //删除表car中code列为c001的行的数据
delete from car where brand=‘b001‘ or brand=‘b004‘ // 删除表car中brand列为b001和b004的行的数据
delete from car where brand=‘b001‘ || brand=‘b004‘ // 删除表car中brand列为b001和b004的行的数据
delete from car where brand=‘b007‘ && price>50 //删除表car中brand列为b007并且price列大于50的行的数据
delete from car where brand=‘b007‘ and price>50 //删除表car中brand列为b007并且price列大于50的行的数据
3.更改数据
update <表名> set <列=值>[,列=值...] where .....
例:
update info set sex=‘1‘ where code=‘p003‘ // 将info表中code列为p003的行的sex列的数据改为1
update info set sex=‘0‘,nation=‘n004‘,birthday=‘1999-9-9‘ where code=‘p001‘ //将info表中code列为p001的行的sex列改为0,nation列改为n004,birthday列改 为1999-9-9
update car set price=price * 0.9 where price > 30 //将car表中price列大于30的price列的数据乘以0.9
update car set price =price * 0.95 where (brand=‘b006‘ || brand=‘b005‘)&&price>30 // 将car表中brand列为b006和b005并且price列大于30的price列的数据乘以 0.95
4.查找数据
select * from 表名
select 列名1,列名2... from 表名 --投影
select * from 表名 where 条件 --筛选
(1)等值与不等值
select * from car where code=‘c001‘; // 从car表中查找code列为c001的行的数据
select * from car where code != ‘c001‘; // 从car表中查找code列不为c001的行的数据
select * from car where price > 30; //从car表中查找price列大于30的行的数据
--下面的都是范围
select * from car where price >=30 && price <=50; //从car表中查找price列大于等于30并且小于等于50的行的数据
select * from car where price between 30 and 50 //从car表中查找price列大于等于30并且小于等于50的行的数据
select * from car where brand=‘b002‘ || brand=‘b004‘ || brand=‘b006‘ //从car表中查找brand列为b002、b004、b006的行的数据
select * from car where brand in (‘b002‘,‘b004‘,‘b006‘) //从car表中查找brand列为b002、b004、b006的行的数据
select * from car where brand not in (‘b002‘,‘b004‘,‘b006‘) //从car表中查找brand列不为b002、b004、b006的行的数据
(2)模糊查
select * from car where name like ‘宝马%‘ %--任意多个任意字符 //从car表中查找以“宝马”开头的所有数据
select * from car where name like ‘%5%‘ // 从car表中查找中间包含“5”的所有数据
select * from car where name like ‘%型‘ // 从car表中查找以“型” 结尾的所有数据
select * from car where name like ‘__5%‘ // 从car表中查找第三位是“5”的所有数据 _ (空格)表示一个任意字符
(3)排序
select * from 表名 where .... order by 列名 [ASC/DESC],列名[asc/desc]....
select * from car order by price desc // 将car表的数据按照price列数据降序排列
select * from car order by brand desc,price asc // 将car表的数据按照brand列数据降序排列,price列数据升序排列
以上是关于MySQL用程序代码建表的主要内容,如果未能解决你的问题,请参考以下文章
领导含泪叮嘱:MySQL 建表字段记得用 not null,不然就收拾滚蛋!!
领导含泪叮嘱我:MySQL 建表字段记得用 not null,不然就收拾包袱滚蛋