-
2021-01-19 02:06:07
mysql教程 修改表/字段 增加/删除表索引
create table test (blob_col blob, index(blob_col(10)));在mysql 5.1中,对于myisam和innodb表,前缀可以达到1000字节长。请注意前缀的限制应以字节为单位进行测量,而create table语句中的前缀长度解释为字符数。当为使用多字节字符集的列指定前缀长度时一定要加以考虑。
还可以创建fulltext索引。该索引可以用于全文搜索。只有myisam存储引擎支持fulltext索引,并且只为char、varchar和text列。索引总是对整个列进行,不支持局部(前缀)索引
加索引
mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]);
例子: mysql> alter table employee add index emp_name (name);
加主关键字的索引
mysql> alter table 表名 add primary key (字段名);
例子: mysql> alter table employee add primary key(id);
加唯一限制条件的索引
mysql> alter table 表名 add unique 索引名 (字段名);
例子: mysql> alter table employee add unique emp_name2(cardnumber);
mysql alter语法运用:查看某个表的索引
mysql> show index from 表名;
例子: mysql> show index from employee;
删除某个索引
mysql> alter table 表名 drop index 索引名;
例子: mysql>alter table employee drop index emp_name;
修改表:增加字段:mysql> alter table table_name add field_name field_type;
查看表:mysql> select * from table_name;
修改原字段名称及类型:mysql> alter table table_name change old_field_name new_field_name field_type;
删除字段:mysql alter table table_name drop field_name;
最后补充一点
多列索引
mysql可以为多个列创建索引。一个索引可以包括15个列。对于某些列类型,可以索引列的前缀(参见7.4.3节,“列索引”)。
多列索引可以视为包含通过连接索引列的值而创建的值的排序的数组。
mysql按这样的方式使用多列索引:当你在where子句中为索引的第1个列指定已知的数量时,查询很快,即使你没有指定其它列的值。
假定表具有下面的结构:
create table test ( id int not null, last_name char(30) not null, first_name char(30) not null, primary key (id), index name (last_name,first_name));name索引是一个对last_name和first_name的索引。索引可以用于为last_name,或者为last_name和first_name在已知范围内指定值的查询。因此,name索引用于下面的查询:
select * from test where last_name='widenius'; select * from test where last_name='widenius' and first_name='michael'; select * from test where last_name='widenius' and (first_name='michael' or first_name='monty'); select * from test where last_name='widenius' and first_name >='m' and first_name < 'n';然而,name索引不用于下面的查询:
select * from test where first_name='michael'; select * from test where last_name='widenius' or first_name='michael';
更多相关内容 -
MySQL 部门员工工资表 综合练习
2021-03-08 09:17:59目录员工部门工资表 数据库综合练习数据准备部门表员工表工资等级表数据处理 员工部门工资表 数据库综合练习 数据准备 部门表 -- 创建部门表 DROP TABLE IF EXISTS dept; CREATE TABLE dept( -- 部门编号 deptno ...前段时间学习了MySQL数据库,今天考了一次数据库的测验,结果没考好,我发现数据库真的是 逻辑 比 代码 重要多了!将例题与代码总结于此,以便今后查漏补缺,数据库的知识点实在太密集了,之后再总结到这个MySQL专栏里
目录
- 员工部门工资表 数据库综合练习
- 数据准备
- 数据处理
- 01、查询部门编号为30的部门的员工详细信息
- 02、查询从事clerk工作的员工的编号、姓名以及其部门号
- 03、查询奖金多于基本工资的员工的信息
- 04、查询奖金多于基本工资60%的员工的信息
- 05、查询部门编号为10的部门经理和部门编号为20的部门中工作为CLERK的职员信息
- 06、查询部门编号为10的部门经理或部门编号为20的部门工作为CLERK的职员信息或者既不是经理也不是CLERK但是工资高于2000的员工信息
- 07、查询获得奖金的员工的信息
- 08、查询奖金少于100或者没有获得奖金的员工的信息
- 09、查询姓名以A、B、S开头的员工的信息
- 10、查询找到姓名长度为6个字符的员工的信息
- 11、查询姓名中不包含R字符的员工信息。
- 12、查询员工的详细信息并按姓名排序
- 13、查询员工的信息并按工作降序工资升序排列
- 14、计算员工的日薪(按30天计)
- 15、查询姓名中包含字符A的员工的信息
- 16、查询拥有员工的部门的部门名和部门号
- 17、查询工资多于smith的员工信息
- 18、查询员工和及其所属经理的姓名
- 19、查询雇佣日期早于其经理雇佣日期的员工及其经理姓名
- 20、查询员工姓名及其所在的部门名称
- 21、查询工作为clerk的员工姓名及其所在部门名称
- 22、查询各部门号及其部门中的最低工资
- 23、查询销售部sales的所有员工的姓名
- 24、查询工资水平大于平均工资的员工
- 25、查询与SCOTT从事相同工作的员工
- 26、查询与部门编号为30的员工工资水平相同的员工信息
- 27、查询工资高于部门编号为30的部门所有员工工资水平的员工信息
- 28、查询部门号、部门名、部门所在位置及其每个部门的员工总数
- 29、查询员工的姓名、工资及其所属部门
- 30、查询员工的详细信息(含部门名)
- 31、查询各工作名称以及从事此工作的最低工资
- 32、计算员工的年薪并且以年薪排序
- 33、查询工资为第4级别的员工的姓名及其工资
- 34、查询工资为第3等级的职员名字、工资、所属部门以及部门所在地
- 35、查询工资等级大于smith的员工的信息
员工部门工资表 数据库综合练习
数据准备
部门表
-- 创建部门表 DROP TABLE IF EXISTS dept; CREATE TABLE dept( -- 部门编号 deptno int PRIMARY KEY, -- 部门名称 dname VARCHAR(14), -- 部门所在地 loc VARCHAR(13) ); -- 向部门表插入数据 INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK'); INSERT INTO dept VALUES (20,'RESEARCH','DALLAS'); INSERT INTO dept VALUES (30,'SALES','CHICAGO'); INSERT INTO dept VALUES (40,'OPERATIONS','BOSTON');
员工表
-- 创建员工表 DROP TABLE IF EXISTS emp; CREATE TABLE emp( -- 员工编号 empno int PRIMARY KEY, -- 员工姓名 ename VARCHAR(10), -- 工作岗位 job VARCHAR(9), -- 直属领导 mgr int, -- 入职时间 hiredate DATE, -- 工资 sal double, -- 奖金 comm double, -- 所属部门 deptno int ); -- 为员工表表添加外键约束 ALTER TABLE emp ADD CONSTRAINT FOREIGN KEY EMP(deptno) REFERENCES dept (deptno); -- 向员工表插入数据 INSERT INTO emp VALUES(7369,'SMITH','CLERK',7902,"1980-12-17",800,NULL,20); INSERT INTO emp VALUES(7499,'ALLEN','SALESMAN',7698,'1981-02-20',1600,300,30); INSERT INTO emp VALUES(7521,'WARD','SALESMAN',7698,'1981-02-22',1250,500,30); INSERT INTO emp VALUES(7566,'JONES','MANAGER',7839,'1981-04-02',2975,NULL,20); INSERT INTO emp VALUES(7654,'MARTIN','SALESMAN',7698,'1981-09-28',1250,1400,30); INSERT INTO emp VALUES(7698,'BLAKE','MANAGER',7839,'1981-05-01',2850,NULL,30); INSERT INTO emp VALUES(7782,'CLARK','MANAGER',7839,'1981-06-09',2450,NULL,10); INSERT INTO emp VALUES(7788,'SCOTT','ANALYST',7566,'1987-07-03',3000,NULL,20); INSERT INTO emp VALUES(7839,'KING','PRESIDENT',NULL,'1981-11-17',5000,NULL,10); INSERT INTO emp VALUES(7844,'TURNER','SALESMAN',7698,'1981-09-08',1500,0,30); INSERT INTO emp VALUES(7876,'ADAMS','CLERK',7788,'1987-07-13',1100,NULL,20); INSERT INTO emp VALUES(7900,'JAMES','CLERK',7698,'1981-12-03',950,NULL,30); INSERT INTO emp VALUES(7902,'FORD','ANALYST',7566,'1981-12-03',3000,NULL,20); INSERT INTO emp VALUES(7934,'MILLER','CLERK',7782,'1981-01-23',1300,NULL,10);
工资等级表
-- 创建工资等级表 DROP TABLE IF EXISTS salgrade; CREATE TABLE salgrade( -- 等级 grade int, -- 最低工资 losal double, -- 最高工资 hisal double ); -- 向工资等级表插入数据 INSERT INTO salgrade VALUES (1,700,1200); INSERT INTO salgrade VALUES (2,1201,1400); INSERT INTO salgrade VALUES (3,1401,2000); INSERT INTO salgrade VALUES (4,2001,3000); INSERT INTO salgrade VALUES (5,3001,9999);
数据处理
01、查询部门编号为30的部门的员工详细信息
02、查询从事clerk工作的员工的编号、姓名以及其部门号
03、查询奖金多于基本工资的员工的信息
04、查询奖金多于基本工资60%的员工的信息
05、查询部门编号为10的部门经理和部门编号为20的部门中工作为CLERK的职员信息
06、查询部门编号为10的部门经理或部门编号为20的部门工作为CLERK的职员信息或者既不是经理也不是CLERK但是工资高于2000的员工信息
07、查询获得奖金的员工的信息
08、查询奖金少于100或者没有获得奖金的员工的信息
09、查询姓名以A、B、S开头的员工的信息
10、查询找到姓名长度为6个字符的员工的信息
11、查询姓名中不包含R字符的员工信息。
12、查询员工的详细信息并按姓名排序
13、查询员工的信息并按工作降序工资升序排列
14、计算员工的日薪(按30天计)
15、查询姓名中包含字符A的员工的信息
16、查询拥有员工的部门的部门名和部门号
17、查询工资多于smith的员工信息
18、查询员工和及其所属经理的姓名
19、查询雇佣日期早于其经理雇佣日期的员工及其经理姓名
20、查询员工姓名及其所在的部门名称
21、查询工作为clerk的员工姓名及其所在部门名称
22、查询各部门号及其部门中的最低工资
23、查询销售部sales的所有员工的姓名
24、查询工资水平大于平均工资的员工
25、查询与SCOTT从事相同工作的员工
26、查询与部门编号为30的员工工资水平相同的员工信息
27、查询工资高于部门编号为30的部门所有员工工资水平的员工信息
28、查询部门号、部门名、部门所在位置及其每个部门的员工总数
29、查询员工的姓名、工资及其所属部门
30、查询员工的详细信息(含部门名)
31、查询各工作名称以及从事此工作的最低工资
32、计算员工的年薪并且以年薪排序
33、查询工资为第4级别的员工的姓名及其工资
34、查询工资为第3等级的职员名字、工资、所属部门以及部门所在地
35、查询工资等级大于smith的员工的信息
-
【典型例题】数据库——用MySQL来建立创建员工表;-Go语言中文社区
2021-02-03 03:13:23作业:创建员工表(employee),要求包含字段(工号、姓名、年龄、性别、薪资、部门),主键为工号。要求命令行完成以下操作:(禁止使用图形工具软件)1)添加三条员工信息分别是:1,张三,18 , 男,5000 , IT部门3,李四...作业:
创建员工表(employee),要求包含字段(工号、姓名、年龄、性别、薪资、部门),主键为工号。
要求命令行完成以下操作:(禁止使用图形工具软件)
1)添加三条员工信息
分别是:
1,张三,18 , 男,5000 , IT部门
3,李四,20,男,6000,市场部
2,小红,28,女,10000,人事部
2)删除关于“张三“的记录
3)将“李四“的性别改为”女”
4)查询并显示员工表中所有的员工信息
首先我们需要运行MySQL软件,来操作;
1.首先,我们要在database数据库中创建一个员工表:create table employee( ① );
①为各个属性,比如姓名,年龄,性别,薪水,部门;
注意:
1)MySQL中的属性和该属性的类型是和java中相反的,如,在java中为:int age;而在MySQL中为 age int;
2)primary key为“主键”约束符,用来唯一标识某个属性,如id int primary key
3)auto_increment是自动顺序增长,用来逐个增加某个自然数;word文档里面,如果标记了序号,换行是可能会自动增长;
4)各个属性之间用逗号隔开" , ",这个逗号必须是英文的逗号,中文的逗号不可以;
5)如果属性是字符串属性,不能用String,而是varchar( ),并且括号里必须规定长度;如果是字符,就使用char( );
6)可以在属性后面加上not null的约束条件来不让该属性的值为空;
7)使用show tables来查看名为employee的table表格中的状态;使用show table employee是错误的,下图第一次系统反馈ERROR ;
输入语句如下:
系统会提示,Query OK ——增删改查OK;
0 rows affected(0.47s)——共0行(音hang2)受到影响(系统共花费0.47s);
使用select*from +[tableName]来查看结果
2)删除关于“张三“的记录
这里的删除用delete from + [tableName]+ where+条件,其中中括号的是表名;
例如:delete from employee where id=1;
这里的条件id=1表示id=1的那一行;
3)将“李四“的性别改为”女”;
使用updata employee set +[更改后的项目] +where +条件;
如:(注意不要混入中文符号,例如第一次查看时,结尾用了2个分号,而且都是中文的分好)
4.查询并显示员工表中所有的员工信息;
使用 select *from employee;语句,结果如下:
结束!
-
java数据库 JDBC操作MySQL数据库常用API 部门表和员工表 创建表 添加数据 查询数据
2021-01-28 02:42:48packagecom.swift.department;importjava.sql.Connection;importjava.sql.PreparedStatement;...在数据库创建部门表和员工表,包含字段如下:部门表包含字段有:部门编号,部门名称(唯一且不能为空)员工表包含字...packagecom.swift.department;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.SQLException;/*SQL语句的编写
JDBC操作MySQL数据库常用API
1.在数据库创建部门表和员工表,包含字段如下:
部门表包含字段有:部门编号,部门名称(唯一且不能为空)
员工表包含字段有:员工编号,员工姓名(唯一且不能为空),员工性别,员工职位,员工工资,入职日期。部门编号(外键)
2.先添加多个部门数据,再添加多条员工数据
3.编写方法接收一个员工编号和工资两个参数,方法内将指定编号的员工工资修改为新的工资。
4.编写方法查询指定职位所有员工的信息,返回List集合。
5.编写方法查询指定姓名的员工信息,返回Employee对象。
6.编写方法根据员工姓名删除指定的员工信息。
7.编写方法查询所有姓张员工的工资并输出在控制台,输出格式如下:
张三=10000
张飞=20000
…………………..
8.编写方法接收一个工资参数,方法内查询工资大于等于传入的工资的员工,返回符合条件所有员工信息List集合。
9.编写方法查询指定部门的所有员工信息,返回List集合*/
public classDepartment {public static void main(String[] args) throwsClassNotFoundException, SQLException {//createDatabaseTable();
addData();
}private static void addData() throwsClassNotFoundException, SQLException {
Connection con=JdbcUtil.getConnection();
PreparedStatement statement= con.prepareStatement("INSERT INTO department(did,dname) VALUES(1,'行政'),(2,'研发'),(3,'财务');");int row =statement.executeUpdate();if(row>=1) {
System.out.println("部门数据添加成功.");
}
statement= con.prepareStatement("INSERT INTO employee VALUES\r\n" +
"(1,'刘备','男','董事长',50000.00,'2002-02-02',1),\r\n" +
"(2,'关羽','男','项目经理',30000.00,'2008-08-08',2),\r\n" +
"(3,'张飞','男','程序员',10000.00,'2012-10-24',2);");
row=statement.executeUpdate();if(row>=1) {
System.out.println("员工数据添加成功.");
}
}private static void createDatabaseTable() throwsClassNotFoundException, SQLException {
Connection con=JdbcUtil.getConnection();
PreparedStatement statement= con.prepareStatement("CREATE TABLE IF NOT EXISTS department(\r\n" +
" did INT PRIMARY KEY ,\r\n" +
" dname VARCHAR(50) UNIQUE NOT NULL\r\n" +
");");int row =statement.executeUpdate();if(row==0) {
System.out.println("部门表创建成功.");
}
statement= con.prepareStatement("CREATE TABLE IF NOT EXISTS employee(\r\n" +
" eid INT PRIMARY KEY ,\r\n" +
" NAME VARCHAR(50) UNIQUE NOT NULL,\r\n" +
" sex VARCHAR(2) ,\r\n" +
" POSITION VARCHAR(50),\r\n" +
" salary DECIMAL(10,2),\r\n" +
" entry_date DATE,\r\n" +
" did INT,\r\n" +
" CONSTRAINT fk_did FOREIGN KEY (did) REFERENCES department (did)\r\n" +
");");
row=statement.executeUpdate();if(row==0) {
System.out.println("员工表创建成功.");
}
JdbcUtil.close(con, statement);
}
}
-
MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法总结
2020-09-09 16:53:45主要介绍了MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法,总结分析了MySQL建表、编码设置、字段添加、索引操作所涉及的SQL语句,需要的朋友可以参考下 -
MySQL项目练习2——员工信息表项目
2021-03-31 21:52:46设计表 数据插入 查询操作 项目条件 dept表(部门) dept部门表结构 字段 类型 描述 deptno mediumint(8) 部门编号 PK ... -
MySQL数据库 外键,级联, 修改表的操作
2021-01-27 04:36:36定义一张 员工部门表id, name, gender, dep_name, dep_desc- 将所有数据存放在一张表中的弊端:1.结构不清晰 ---> 不致命2.浪费空间 ---> 不致命3.可扩展性极差 ---> 不可忽视的弊端- 类似于将所有python... -
mysql数据库:mysql增删改、单表、多表及子查询
2021-01-19 11:40:45表名[(可选字段名)] values(一堆值1),(一堆值2),.....into 可以省略表名后的字段可以选如果写了 后面的values中的值必须与表名后的字段一一对应如果没写 后面的values中的值必须与表的所有字段一一对应values后面... -
[mysql数据库学习] 四 mysql查询语句整理 基于部门和员工表 新手必看(进阶)附MySQL8窗口函数
2021-06-09 19:39:58mysql查询语句练习集合 - 基于部门和员工表 数据库hrs包含了 tb_dept,tb_emp 共两张表 1.数据库、表的建立及数据插入 每张表的具体意义请细读代码,这里也不赘述了QAQ drop database if exists hrs; create ... -
基于Python+Django+MySQL的小型员工管理系统
2020-12-25 15:09:50比较简单的一个小型员工管理系统。 -
MySQL重命名表
2021-03-04 06:24:08MySQL重命名表有时我们的表名是无意义的,因此需要重命名或更改表名。 MySQL提供了一种有用的语法,可以重命名当前数据库中的一个或多个表。句法以下是用于更改表名称的语法:在这里,我们必须确保new_table_name... -
MySQL数据源表结构图示
2020-12-17 21:06:09字段名 字段类型 字段说明 id integer ID depart varchar(45) 部门名称 ename varchar(45) 员工姓名 pcname varchar(45) PC名称 ipaddr varchar(45) IP地址 pcmodel varchar(45) PC型号 pcsn ... -
mysql 表分区 查看表分区 修改表分区
2019-05-08 17:12:26一、mysql分区简介 数据库分区 数据库分区是一种物理数据库设计技术。虽然分区技术可以实现很多效果,但其主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减sql语句的响应时间,同时对于应用来说分区完全... -
mysql 表关系 与 修改表结构
2021-01-28 10:33:52这里将告诉您mysql 表关系 与 修改表结构,教程操作方法:目录mysql 表关系 与 修改表结构两张表关系分析步骤修改表结构mysql 表关系 与 修改表结构两张表关系多对一 以员工和部门举例 多个员工对应一个部门 foreign ... -
mysql关联表删除、修改数据
2021-11-04 13:55:26mysql关联表删除、修改数据关联删除关联修改 关联删除 -- 多表关联查询删除; -- from 前面用表名的别名才可以,否则会修改失败; DELETE s,u1 FROM stu as s INNER JOIN stu_lesson as u1 ON s.id = u1.stu_... -
MySQL中如何修改表的名字?修改表名?
2021-01-18 23:07:16操作过程mysql>...这样的建表方式,不仅仅是表的结构,连带着索引也会同时创建.Query OK, 0 rows affected (0.02 sec)mysql> alter table ts01 rename to ts01_new; #修改表名的语法:alter table renam... -
mysql--对行(表中数据)的增删改查
2021-01-18 18:13:35分组指的是:将所有记录按照某个相同字段进行归类,比如针对员工信息表的职位分组,或者按照性别进行分组等 ONLY_FULL_GROUP_BY 这是mysql中对于group by的一种设置模式,对于GROUP BY聚合操作,如果在SELECT中的列... -
MySQL单表练习
2021-03-04 00:52:18修改表练习 1在上面员工表的基本上增加一个image列。 alter table employee add image longblob; 2修改job列,使其长度为60。 alter table employee modify job varchar(60); 3删除gender列。 alter table employee ... -
mysql表的操作-创建添加删除修改
2022-02-16 17:13:34创建表 建表语句的语法格式: create table 表名( 字段名1 数据类型, 字段名2 数据类型, 字段名3 数据类型, .... ); MySql常用数据类型 类型 描述 Char(长度) 定长... -
解决mysql表不能查询修改删除等操作并出现卡死
2021-01-19 00:03:28问题现象1:进程wait卡住测试环境mysql出现了一个怪表:select查询表卡死,alter修改表卡死,甚至我不想要这个表了,delete、truncate、drop表都卡死卡主了......解决办法:>show full processlist; // 列出进程... -
java swing mysql员工工资管理系统项目源码.zip带报告
2020-07-31 09:40:16随着经济的发展,企业正...功能:可供财务人员对本单位的人员以及工资进行增加、删除、修改、查询,对人事的管理及工资发放中的应发工资合计等项目由系统自动进行计算;同时系统还可对人事及工资管理情况进行多角度查询 -
超精美java员工管理系统(mysql)
2018-02-21 14:41:14(2)员工个人信息管理,如查询,修改,打印; (3)员工个人考勤管理,如录入,计算,修改,删除,查询,打印 (4)系统管理员权限管理,如添加、修改、删除和查看每个职工的信息 (5)系统帮助和维护等几个模块。 ... -
mysql表与表之间建关系
2021-03-14 18:47:58一对多定义一张部门员工表idnamegenderdep_namedep_desc1yzymale教学部教书育人2yolomale外交部形象大使3zmmfemale教学部教书育人4czhmale教学部教书育人5lcmale技术部技术能力有限部门把所有数据都存放于一张表的... -
Java-JSP-Servlet员工信息管理系统Mysql数据库+JSTL(可作为Java课设毕业设计)
2020-12-17 14:31:54Java-JSP-Servlet员工信息管理系统Mysql数据库+JSTL(可作为Java课设毕业设计) -
Mysql 表与表之间的关系
2021-01-28 06:55:02一、前言研究表与表之间的关系前,先要知道将所有数据存放在一张表中的弊端:1.结构不清晰 ---> 不致命2.浪费空间 ---> 不致命3.可扩展性极差 ---> 不可忽视的弊端就i好比将所有的代码存放在一个文件中,强... -
mysql如何查看表权限设置
2021-01-27 05:06:013 2021-01-15 20:35:34 前言 近日在做一个报表功能里面有一个这样的需求是统计各部门在某一月入职和离职的人数我的步骤先查出入职的人数SELECT dept ,COUNT(1) rcNumber FROM 员工表 WHERE ( 入职 2021-01-15 20:13:... -
mysql记录的增删改和单表查询
2021-02-04 18:38:481.记录的详细增加方式insert into 表名[(字段1,字段2,~)] values ...如果没有写,后面的values中的值必须与表的所有字段一一对应。values后面可以给多组值,用逗号隔开。2.记录的详细删除方式delete from 表名 [wh... -
MySQL 练习笔记 | 员工部门表实例
2019-09-05 19:00:42创建部门表和员工表 create table if not exists s_dept( dept_no int(3) unsigned zerofill primary key auto_increment, dept_name varchar(32) not null, is_valid char(2) not null )engine = innodb default ...