MySQL创建和操作数据库表demo
【1】建立员工档案表
要求字段:员工员工编号,员工姓名,性别,工资,email,入职时间,部门。
【2】合理选择数据类型及字段修饰符,要求有NOT NULL,auto_increment, primary key等。
DROP TABLE IF EXISTS `workers_info`;
CREATE TABLE `workers_info` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`workername` varchar(20) NOT NULL,
`sex` enum(F,M,S),
`salary` int(11) DEFAULT '0',
`email` varchar(30),
`EmployedDates` date,
`department` varchar(30),
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
mysql> alter table workers_info ADD sex enum('F','M','S');
【3】查看表的结构
mysql> desc workers_info;
【4】新增qq和tel字段,要求tel字段位于email前,要求入职时间是最后一个字段------添加字段
mysql> ALTER TABLE workers_info ADD tel varchar(15) after salary;
mysql> ALTER TABLE workers_info ADD qq int;
ALTER TABLE workers_info MODIFY EmployedDates date after qq;
alter table bops_bad_word add COLUMN `isDelete` enum('Y','N') DEFAULT 'N' COMMENT '是否删除(Y为已删除/N或空为正常)';
【5】把email字段修改成mailbox------修改字段名
mysql> ALTER TABLE workers_info CHANGE email mailbox varchar(30);
【6】向表里添加10条记录------添加数据
mysql> INSERT INTO workers_info (workername,salary,tel,mailbox,department,qq,EmployedDates) values('xing',10000,'1598232123','xing@qq.com','yanfa',736019646,20121221);
【7】修改其中两条记录的tel和mailbox------修改数据
mysql> UPDATE workers_info SET mailbox = 'haha@qq.com',tel='1246543423' WHERE id = 13;
【8】查看所添加记录------查询数据
mysql> select * from workers_info;
【9】查看姓名和入职时间记录
mysql> select workername,EmployedDates from workers_info;
【10】查询入职时间在2003年以前的------日期筛选
mysql> select * from workers_info where year(EmployedDates) < 2003;
【11】查询工资最高和最低的员工姓名------排序
mysql> select * from workers_info ORDER BY salary limit 1;
mysql> select * from workers_info ORDER BY salary desc limit 1;
【12】查询平均工资------平均函数
mysql> select avg(salary) from workers_info;
【13】统计男员工人数、女员工人数------总和函数
mysql> select count(1) from workers_info where sex="M";
【14】按照入职时间先后进行排序,并显示前5位员工姓名
mysql> select * from workers_info ORDER BY EmployedDates limit 5;
版权出自:http://blog.csdn.net/kakane/article/details/7401111
----------
Demo:
1、最简单的:
CREATE TABLE t1(
id int not null,
name char(20)
);
2、带主键的:
CREATE TABLE t1(
id int not null primary key,
name char(20)
);
复合主键:
CREATE TABLE t1(
id int not null,
name char(20),
primary key (id,name)
);
3、带默认值的:
primary key,
name char(20) default '1'
);
转帖:
) ) ) ) ,
) ),
) ) ),
))
;
) NOT NULL
CHECK(DIVISION IN ('first','second')),
FOREIGN KEY (PLAYERNO) REFERENCES PLAYERS (PLAYERNO))
;
),
),
FOREIGN KEY (TEAMNO) REFERENCES TEAMS (TEAMNO),
FOREIGN KEY (PLAYERNO) REFERENCES PLAYERS (PLAYERNO))
;
,) ),
FOREIGN KEY (PLAYERNO) REFERENCES PLAYERS (PLAYERNO))
;
),
PRIMARY KEY (PLAYERNO, BEGIN_DATE),
FOREIGN KEY (PLAYERNO) REFERENCES PLAYERS (PLAYERNO),
CHECK(BEGIN_DATE < END_DATE),
CHECK(BEGIN_DATE >= DATE('1990-01-01')))
;
mysql修改字段注释方法:
来源:http://blog.sina.com.cn/s/blog_72aace390102uwgg.html
UPDATE COLUMNS t SET t.column_comment = '-1:默认值,1:人员id,2:公司id' WHEREt.TABLE_SCHEMA='database_name' AND t.table_name='table_name' ANDt.COLUMN_NAME='column_name ';
Access denied for user 'usr'@'%' to database 'information_schema'
| 官方解释: INFORMATION_SCHEMA是信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件。 每位MySQL用户均有权访问这些表,但仅限于表中的特定行,在这类行中含有用户具有恰当访问权限的对象。 事实上,尽管不需要生成名为INFORMATION_SCHEMA的文件,我们仍提供了名为INFORMATION_SCHEMA的新数据库。可以使用USE语句将INFORMATION_SCHEMA选择为默认数据库,但访问该数据库中所含表的唯一方式是使用SELECT语句。不能在其中插入内容,不能更新它们,也不能删除其中的内容。 更多信息请戳链接:
http://dev.mysql.com/doc/refman/5.1/zh/information-schema.html
|
|
网摘:
Mysql没有Oracle那么方便,修改注释的时候需要指定{type}(这是Mysql设计的不合理性!);系统数据字典表COLUMNS中有保存所有表的字段信息,但是系统字典表是只读的,无法修改注释;
所以,Mysql修改注释必须按照上面的格式对不同类型做判断,并且带有长度的字段必须指明length与decimals,否则更新注释的时候会修改length,decimals为默认值的; 修改Mysql注释是件麻烦的事情,但是也只能这样了 |
| 当对于一个大表进行ALTER TABLE的时候,性能问题就产生了。MySQL大部分改动的步骤如下:根据新的表结构创建一个空表,从旧表中把数据取出来插入到新表中,在删除旧表。这是个非常漫长的过程。许多人ALTER TABLE之后,都有等待1小时或者1天的痛苦经历。 |
SQL定时任务:
--- 新增自动收货天数字段
alter table `csc_order`.`order_current` drop column `automatic_receipt`,
add column `automaticReceipt` int(11) DEFAULT '15' NOT NULL COMMENT '发货后自动收货天数(默认15天,可延迟收货)' after `source`;
--- 新增自动收货定时任务
INSERT INTO csc_appframework.task(`projectId`, `taskName`, `taskCron`, `taskType`, `taskAddress`, `taskTime`, `addDate`, `modifyDate`, `status`)
VALUES('19','自动确认收货','0 0 0-23 * * ?','0','http://192.168.0.134:9108/order-app/order/automaticReceipt','0',NOW(),NOW(),'0');
MySQL创建和操作数据库表demo的更多相关文章
- MySQL-5.7创建及查看数据库表
1.创建数据库表的三种语句 创建一个新表: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (create_definition,...) [tab ...
- SQL分类之DDL:操作数据库表
DDL:操作数据库表 1.操作数据库:CRUD 1.C(Create):创建 创建数据库: create database 数据库名称 创建数据库,判断不存在,再创建: create database ...
- MySQL(2)数据库 表的查询操作
来源参考https://www.cnblogs.com/whgk/p/6149009.html 跟着源博客敲一遍可以加深对数据库的理解,同时对其中一些代码做一些改变,可以验证自己的理解. 本文改动了其 ...
- MySQL(3) - 数据库表的相关操作
1.数据库表的创建 逻辑库 1)创建逻辑库:CREATE DATABASE 逻辑库名称; 2)显示逻辑库:SHOW DATABASES; 3)删除逻辑库:DROP DATABASE 逻辑库名称; 数据 ...
- 创建access数据库表demo的封装
1.创建类 public void CreateBiao(ADOX.Catalog catlog,ADOX.Table table) { //StuId Column(AutoIncrement ) ...
- mysql客户端的导出数据库表和数据库数据等相关操作
1.navicat for mysql 11.0.10客户端 导出数据库里所有表中的所有数据,方法如下,选中表,在横向导航栏里面找到“导出向导”,选中sql,点击下一步,点击全选,并且选中“应用相同目 ...
- MySQL中的information_schema数据库表说明
MySQL 中的 information_schema 数据库 版权声明:https://blog.csdn.net/kikajack/article/details/80065753 1. 概述 ...
- mysql一:操作数据库
创建数据库是指在数据库空间中划出一块空间用来存储相关的数据,表就是存储在对应的数据库里面.首先来看下查看数据库的命令:show databases. 这个是用来查询数据库空间下所有的数据库,其中inf ...
- MySQl的库操作、表操作和数据操作
一.库操作 1.1库的增删改查 (1)系统数据库: performance_schema:用来收集数据库服务器的性能参数,记录处理查询时发生的各种事件.锁等现象 mysql:授权库,主要存储系统用户的 ...
随机推荐
- Delphi String 常用字串符处理函数
Delphi 在面对跨平台开发,程序语言也改进不少,不过有些改进,让原本 Delphi 开发者有些不适应,最显注的就是字串处理函数了,原本 Pascal 语言字串起始由 1 开始,几乎是它的经典了,新 ...
- 关于【error C3646: 未知重写说明符】的若干种可能性
如果在程序中出现了error C3646,那么这个错误可能是由多种问题所导致的,这篇文章将对多种错误及对应解决方法进行分析. 在MSDN的官方网站中,Complier Error C3646的定义为u ...
- 开始自学H5前端-第一天
自从iOS工作丢了后 就萌生了自学这个想法 但是一直在纠结学哪一门语言好 我是计算机科学与技术专业的 其实对于我来说 学啥都算是有点基础的 但是被iOS坑惨了之后 就会不自觉的进行各个方向和前景分析 ...
- 【Effective Java】12、避免过度同步
这里有一个辅助基础类 package cn.xf.cp.ch02.item16; import java.util.Collection; import java.util.Iterator; imp ...
- Java实现多线程并发
import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util ...
- 跨平台日志清理工具 Log-Cutter v1.0.3 正式发布
Log-Cutter 是JessMA开源组织开发的一个简单实用的日志切割清理工具.对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能.如果用手工方 ...
- Guacamole之本地安装Guacamole(二)
摘要 在网上看到一篇Guacamole官方手册的翻译,但是找不到后续,于是想自己也翻译几篇,有时间的话,会尽量多翻译一些. 原文地址:http://guacamole.incubator.apache ...
- 20款免费响应式的 HTML5 网站模板下载
今天这篇文章给大家带来的是20款免费响应式的 HTML5 网站模板,大家可以借助这些优秀的网站模板创建自己的优秀网站.响应式(Responsive Design)设计的目标是要让产品界面能够响应用户的 ...
- MySQL的常规操作
MySQL的常规知识 show 查看数据库 show databases; 查看表 存在的所有表 show tables; 创建表的命令 show create table table_name; 表 ...
- 每次点击按钮后,判断页面是否已经有该行,没有弹出repeater的一行,并给他赋一个这行附值,没有则跳出
protected void btnAdd_click(object sender, EventArgs e) { try { //记录第几次追加 pressCount++; typeString.A ...