现在的位置: 首页 > 综合 > 正文

17-mysql与jdbc入门 2010-4-10 星期六

2013年03月22日 ⁄ 综合 ⁄ 共 4516字 ⁄ 字号 评论关闭

用户语言分布
 select language,count(*) from upload_basic group by language
 insert into emp values(3,'吴刚','男','','')

char 定长字符
varchar 变长字符

double(6,2)  9999.99
# 6  表示整数+小数的位数
# 2  表示小数的位数
#删除表
#语法
drop table 表名
#删除emp表
drop table emp

#创建表的语法:
create table 表名
(
字段名1   数据类型,
字段名2   数据类型,
字段名3   数据类型,
字段名4  数据类型
#   最后一个字段后面没有,
)
create table employees
(
employee_id int,         #员工编号
first_name varchar(12),  #员工姓
last_name varchar(12),   #员工名
job varchar(30),         #工种
salary double(8,2),      #月薪
comm double(8,2),        #提成
hiredate date,           #雇佣日期
department_id  int
#部门编号
)

create database db0505;
use db0505;
create table test1(id int,name varchar(12))
desc test1;

select * FROM EMPLOYEES
#select 语句的语法规则
#第一种方式  select * from table_name
#  查询所有的字段
#字段的显示顺序和创建表时的顺序一致

#第二种方式  select 字段1,字段2,字段3 from table_name(在开发应用的)
#  查询select后面显示的字段列表
#字段的显示顺序和select后面显示的字段列表一致
 SELECT  first_name,comm,hiredate from employees
 select comm,hiredate,first_name from employees
#对NUMBER类型数据可以使用算数操作符创建表达式(+ - * /)
#输出员工信息和月收入
 select employee_id,first_name,last_name,job,salary,salary+10 
 from employees
 select employee_id,first_name,last_name,job,salary,salary+comm 
 from employees
#输出员工的年薪
 select employee_id,first_name,last_name,job,salary*12+100
 from employees

 select employee_id,first_name,last_name,job,salary*(12+100)
 from employees

#定义字段的别名
语法1: 字段名  字段别名
语法2:字段名 AS 字段别名
 #输出员工的id,姓名,月薪。年薪
  select employee_id,first_name,last_name,salary 月薪,salary*12 "年薪" from employees
  select employee_id,first_name,last_name,salary 月薪,salary*12  AS "年薪" from employees
  select employee_id,"First name",last_name,salary 月薪,salary*12 "年 薪 " from employees

#带限制条件的查询
#使用where子句限定返回的记录
 select * from tableName where condition
 #查询10号部门的所有员工
  select employee_id,first_name,last_name,department_id from employees where department_id=10
 #查询员工的first_name等于张的员工信息
  select * from employees where first_name='张'

#在条件中使用比较运算符
 #查询工资>4000的所有员工
  select * from employees where salary>4000

#使用between and 运算符(包含开始和结果)
 #查询工资在4200-------6000之间的员工信息 
  select * from employees where salary between 4200 and 6000
  select * from employees where salary >=4200 and salary<=6000

#使用IN运算符获得匹配列表值的记录,在IN操作符后跟着一个值的列表,可以是应用日期,字符串数据类型
 #查询员工id是 2 3 4 的员工信息
  select * from employees where employee_id in(2,3,4)
 #查询工种是员工和办公室主任的员工信息
  select * from employees where job in('员工','办公室主任')

#使用like运算符执行通配查询  ,
 #(%)可表示零或多个字符
 #(_)可表示一个字符
 #查询员工的姓名中含有字母A的员工信息
  select * from employees where first_name like '%A%'
 #查询员工的姓名中以字母A开头的员工信息
  select * from employees where first_name like 'A%'
 #查询员工的姓名中第三个字符以字母A开头的员工信息
  select * from employees where first_name like '__A%'

#使用or运算符
 #查询姓名=张 或 工资>5000的员工信息
  select * from employees where first_name='张' or salary>5000

#使用and运算符
 #查询姓名=张 或 工资>5000的员工信息
  select * from employees where first_name='张' and salary>5000

#使用not运算符
 #查询工种不是人力资源经理和员工的员工信息
  select * from employees where job not in('人力资源经理','员工')

# 对数据的排序
#使用order by 子句将记录排序
# asc :升序,缺省
# desc :降序
#查询所有的员工信息,按员工id降序排序
 select * from employees order by employee_id desc
#查询所有的员工信息,按员工id升序排序
 select * from employees order by employee_id 

#查询所有的员工信息,按工资升序排序

#使用列的别名排序
#查询员工id 姓名 工资,年薪,并按年薪降序排序
 select employee_id,first_name,last_name salary,salary*12 年薪 
 from employees order by 年薪 desc

#在多列上进行排序,要为每个列设置排序方式
#查询员工id 姓名 工资,并按部门降序排序,工资升序
 select employee_id,first_name,last_name,department_id,salary  
 from employees order by department_id desc,salary asc

#带查询条件的排序
#查询员工id 姓名 工资,部门 并且按部门=10  并按工资的升序排序
#语法:select * from table_name where condition order by 排序的字段 
 select employee_id,first_name,last_name,department_id,salary 
 from employees
 where department_id=10
 order by salary asc

#几个分组函数
 count()计算共有多少条记录
 max()计算最大值
 min()计算最小值
 avg()计算平均值 
 sum()计算总和
#查询共有多少员?       *代表表中的所有字段
 select count(*) from employees
 select count(*) from employees where department_id=10
 select max(salary) from employees
 select min(salary) from employees
 select avg(salary) from employees
#查询公司员工工资的总和
 select sum(salary) from employees

# 对数据库的操作
#往表中插入数据
#语法  insert into tableName values(字段1值,字段2值,字段3值。。。 所有字段的值)
#1  values后面是值的列表,也就是要插入到列表中的各个字段的值。如果前面列出了字段列表。
   #那么列表必须与字段列表一一对应,包括个数,数据类型,位置的对应。
   #如果忽略了字段列表,那么列表必须与表中字段一一对应(创建表时字段的顺序)
insert into employees values(23,'dd','23','企划部',400,345,'2001-02-02',40)

#2  插入部门数据
#insert into tableName(字段1,字段2,字段3。。。) values(字段1值,字段2值,字段3值。。。)
 insert into employees(first_name,last_name,salary) values('A','e',8900)

#3  插入部门数据   顺序和创建表的顺序不一致
 insert into employees(salary,first_name,last_name) values(4900,'r','9')

 #auto_increment  自增从1开始步长为1
 #主键 非空且唯一
 create table test(
 id int auto_increment primary key,
 name varchar(40),
 sex char(4))
#写法一
 insert into test(name,sex) values('a','男')
#写法二
 insert into test(id,name,sex) values(null,'a','男')

#更新表中的记录
#update
#语法:update tableName set 字段1=字段1值,字段2=字段2值...
# where 字段n=字段n值
#更新test表中name字段的值为k
 update test set name='K',sex='女'
#更新表中部分记录
 update employees set first_name='西门',last_name='公子'
 where employee_id=4

#删除数据delete
#删除表中的全部数据
 delete from test
 delete from employees where employee_id=1

抱歉!评论已关闭.