MySQL用程序代码建表(1)
一、创建表格代码格式
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(子表列名) references <父表名>(父表列名) 外键
auto_increment 自增长
注意:所有符号必须是英文状态下的
每个表创建完之后加分号
表里面的最后一列写完之后不要加逗号
二、删除表格代码格式
drop table <表名>
三、表格内数据的操作
大致可分为增、删、改、查 CRUD
1.添加数据
insert into <表名>[(列1,列2...)] values (<‘值1’>[,‘值2’...])
注意:
(1)列与值要匹配(数量,类型,排序)
(2)列可以省掉,但值必须与表中的总列数和列的次序完全对应
(3)部分数据添加时自增长列(即主键列)不能省,不给明确值的要给自增列赋值‘'
(4)布尔型数据不用‘’用true/false代替,数字类型也不用‘’可直接写数字
例:
insert into Info(xuhao,name,minzu,shengri)values(‘’,‘张三’,‘n003’,‘1992-2-2’) //在Info表中添加姓名为张三,民族为n003,生日为1992-2-2 其中‘’为自增长列表示顺序增加,以其上一条内容的xuhao值向后自动增加,其余列为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的行的数据
(2)范围查询
select * from car where price >=30 && price <=50; //从car表中查找price列大于等于30并且小于等于50的行的数据 (&&=and)
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的行的数据(||=or)
(3)分类查询
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的行的数据
(4)模糊查询
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”的所有数据 _ (下划线)表示一个任意字符
(5)排序
select * from 表名 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用程序代码建表(1)的更多相关文章
- SharePoint代码建表(实战)
分享人: 广州华软 无名 一. 前言 虽然SharePoint提供可视化界面建表,但是,不利于开发自动化部署.通常,如果通过手动建表,我们先在测试环境建表,然后存为模板,再上传到实际环境,最后根据模板 ...
- mysql数据库(一):建表与新增数据
一. 学习目标 理解什么是数据库,什么是表 怎样创建数据库和表(create) 怎样往表里插入数据(insert) 怎样修改表里的数据(update) 怎样删除数据库,表以及数据(delete) 二. ...
- mysql优化1:建表原则
建表三大原则: 定长和变长分离 常用字段和不常用字段分离 使用冗余字段或冗余表 1.定长与变长分离 如 id int,占4个字节,char(4)占4个字符长度,也是定长,time 即每一个单元值占的字 ...
- 一次作业过程及其问题的记录:mysql建立数据库、建表、查询和插入等
前言 这次的作业需要我建立一个小的数据库. 这次作业我使用了mysql,进行了建库.建表.查询.插入等操作. 以下是对本次作业相关的mysql操作过程及过程中出现的问题的记录. 正文 作业中对数据库的 ...
- Mysql数据库常规操作(建表、查询)
一.表单操作 1-1.创建表 create table tb_name( id in primary key auto_increment); 1-2.查看表 desc table_name; ...
- mysql那些事(5)建表存储引擎的选择
在mysql见表的时候,会遇到选择存储引擎:MyISAM和InnoDB.究竟用哪种存储引擎好呢? 1.MyISAM:表锁:支持全文索引:读并发性能较好. 2.InnoDB:行锁:支持事务,支持外键:写 ...
- MySQL学习一:建表
目标:创建三张表,学生表student(sid,name,gender), 课程表course(cid,name), 分数mark(mid, sid, cid, gender); 要求sid, cid ...
- java中用activiti插件连接mysql数据库,自动建表过程中,在配置mysql架包路径“org.activiti.engine.ActivitiException: couldn't check if tables “
java中用activiti插件连接mysql数据库,出现错误: org.activiti.engine.ActivitiException: couldn't check if tables are ...
- mysql命令行查看建表语句
命令如下: SHOW CREATE TABLE tbl_name 例子: mysql> SHOW CREATE TABLE t\G . row ************************* ...
随机推荐
- partial class 说明
C# 2.0 可以将类.结构或接口的定义拆分到两个或多个源文件中,在类声明前添加partial关键字即可. 例如:下面的PartialTest类 class PartialTest { string ...
- [leetcode]_Path Sum I && II
都是考查DFS.经典回溯算法,问题在于我对该类型的代码不熟悉,目前以参考别人的代码,然后加上自己的实现为主,通过类似的题目加强理解. 一.给定一棵二叉树,判断是否存在从root到leaf的路径和等于给 ...
- 记一下ajax里get与post的异同
以下均为个人笔记,如有错误,欢迎指正 get与post在写法上来讲基本上差不多 $.ajax({ type:"get",//get data:data, success:funct ...
- input实时监听(input oninput propertychange onpropertychange)
本文实例讲述了js与jquery实时监听输入框值的oninput与onpropertychange方法.分享给大家供大家参考.具体如下: 最近做过一个项目,需求是下拉框里自动匹配关键字,具体细节是实时 ...
- centos6.7下编译安装lnmp
很多步骤不说明了,请参照本人的centos6.7下编译安装lamp,这次的架构是nginx+php-fpm一台服务器,mysql一台服务器 (1)首先编译安装nginx: 操作命令: yum -y g ...
- maraidb半同步复制
半同步复制是在主从同步复制的基础之上,主从同步前面我的博文有介绍 Semisynchronous Replication(半同步复制)则一定程度上保证提交的事务已经传给了至少一个备库 MySQL在加载 ...
- [译]Cassandra的数据读写与压缩
本文翻译主要来自Datastax的cassandra1.2文档.http://www.datastax.com/documentation/cassandra/1.2/index.html.此外还有一 ...
- PHP上传图片如何防止图片木马?
segmentfault回答: http://segmentfault.com/q/1010000000507750 一. 其实识别图片木马是很困难的,可以在一张正常的图片里加入一句话木马. 但是只要 ...
- ROS 端口IP映射 动态IP映射
chain=dstnat action=dst-nat to-addresses= protocol=tcp dst-address-type=local dst-port= log=no log-p ...
- [terry笔记]更改oracle用户名
更改oracle的用户名 之前有个需求,整理一个schema的表.索引等规划到一个表空间里,利用expdp/impdp然后remap就完成了,但是整理好的用户名remap变更了,应用又不想修改其连接信 ...