什么是数据库?数据库的作用想学数据库必看 (2)数据库操作 库, 表,列

1创建数据库 
create database 数据库名字;
查看一下创建的数据 
show create database mydb1;
指定数据库字符集
Create database 数据库名 character set gbk; 

查看数据库支持的字符集
show character set;  

设置对应的效验规则
create database mydb3
character set gbk COLLATE gbk
chinese ci;

 2.查询数据库
 查看当前数据库服务器中的所有数据库
 show databases;

 查看前面创建的mydb2数据库的定义信息

 show create database mydb2;

 3.修改数据库(alter)
 修改字符集utf8
 alter database 库名 character set 要修改的编码格式;

 4.删除数据库
 删除前面创建的mydb3数据库
 Drop database mydb3;

 5.其他:
 查看当前使用的数据库
 select  database();

 切换数据库
 use mydb2;

 6.退出数据库
 quit;


 ----------------------------
 创建学生表



-

学号  姓名  性别  --字段(列)
1      抗    男   一条记录
2      恺    男   一条记录
3      亮    男   一条记录


操作数据库中的数据表
*语法: 
create table 表名(
    字段1   字段类型,
    字段2   字段类型,
    .........
    字段N   字段类型
);

*常用的数据类型:
int : 整型

double : 浮点型, 例如 double(6,2)  表示最多五位 ,其中必须有 2位小数 , 即最大值为999.99;

char: 固定长度字符串类型:char(10) 10个字节 'wanglong_ _'

varchar:
可变长度字符串类型:varchar(10)'wanglong'  字符串的长度为8

text: 字符串类型: 大数据文本 最大4M

blob:字节类型; 保存音频 保存图片

date 日期类型 格式为: yyyy-MM-dd;

Time: 时间类型 mm:hh:ss;


练习:
1.创建表 
mysql> create table emp(
    -> id int,
    -> name varchar(50),
    -> gender varchar(10),
    -> birthday date ,
    -> Entry_date date,
    -> job varchar(100),
    -> salary double,
    -> resume  double,
    -> );
)
2.修改表
添加一列 image blob(子节类型)
ALTER TALE 表名 ADD image(字段) blob(字段类型);
修改job列, 使其长度为60 
ALTER TABLE emp MODIFY job varchar (60);
删除image列,一次只能删一列
ALTER TABLE emp TO user;

查看表格的创建细节
SHOW CREATE TABLE user;

列名name 修改为username
ALTER TABLE user GHANGE 原字段名 新字段名 varchar(100);


###### DML (操作表数据)
1.insert(插入)
语法: INSERT INTO 表名 (列名1,列名2....)VALUES(列值1,列值2...);
注意:列名与列值的类型,个数,顺序要一一对应.

可以把列名当做java中的形参,把列值当做实参.
值不要超出定义的长度.
如果插入空值,请使用null
插入的日期和字符一样,都使用引号括起来.

练习:
create table emp( id int name varchar(100), gender varchar(10), birrhday date, salary float(10,2), entry_date date, resume text );


INSERT INTO emp(id,name,gender,birthday,salary,entry,date,resume)
VALUES(1,'王龙','female','1990-5-10',10000,'2015-5-5','good girl');

INSERT INTO emp(id,name,gender,birthday,salary,entry,date,resume)VALUES(2,'list','mate','1995-5-10',10000,'2015-5-5','good boy');


INSERT INTO emp(id,name,gender,birthday,salary,entry,date,resume)VALUES(3,'wangwu','male','1995-5-10',10000,'2015-5-5','good boy');

批量插入:
INSERT INTO emp VALUES
(4,'ZS','M','2015-09-01',10000,'2015-09-01',NULL),
(5,'LI','M','2015-09-01',10000,'2015-09-01',NULL),
(6,'WW','M','2015-09-01',10000,'2015-09-01',NULL);

2.修改操作(update)
语法:UPDATE 表名 SET 列名1=列值2...WHERE 列名 =值

练习

将所有员工薪水修改为5000元
UPDATE emp SET salary = 5000
将姓名'zs'的员工薪水修改为3000元

UPDATE emp SET salary = 3000 WHERE name='zhangsan';
将姓名为'zs'的员工薪水修改为4000元,gender = 'f'WHERE name='zs';

将wu的薪水在原有的基础上增加1000元.
UPDATE emp SET salary = salary+1000 WHERE gender ='male';


3.删除操作(Delete)
语法: DELETE FROM 表名 [WHERE 列名=值]

练习:
删除表中称为'wanglong'的记录.
DELETE FROM emp WHERE name ='zs';
删除表中所有记录.
DELETE FROM emp;
-----------------------------
DQL 查询操作
DQL 数据查询语言(重要)
数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端.
查询返回的结果集是一张虚拟表.

查询关键字: SELECT
语法: SELECT 列名1,列名2 FROM表名(查询多列用逗号隔开)
查询所有列 使用*(星号)

查询练习
CREATE TABLE stu(
    sid CHAR(6),
    sname VARCHAR(50),
    age INT ,
    gender VARCHAR(50)
);

INSERT INTO stu VALUES('S_1001','liuYi',35,'male');

INSERT INTO stu VALUES ('S_1002','chenEr',15,'female');

INSERT INTO stu VALUES ('S_1003','zhangSan',99,'male');

INSERT INTO stu VALUES ('S_1004','hangSan',29,'female');

INSERT INTO stu VALUES ('S_1005','angSan',34,'male');

INSERT INTO stu VALUES ('S_1006','gSan',45,'female');

INSERT INTO stu VALUES ('S_1007','San',25,'male');

INSERT INTO stu VALUES ('S_1008','Sanso',85,'female');

INSERT INTO stu VALUES ('S_1009','zSan',66,'male');

INSERT INTO stu VALUES ('S_1010','zhSan',NULL,'NULL');

-----------------------------
雇员表:emp
CREATE TABLE emp(
    empno INT,
    ename VARCHAR(50),
    job VARCHAR(50),
    mgr INT ,
    hiredate DATE,
    sal DECIMAL(7,2),
    comm decimal(7,2),
    deptno INT 
);

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-04-19',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-05-23',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,'1982-01-23',1300,NULL,10);

部门表:dept
CREATE TABLE dept(
    deptno INT,
    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');

查询练习
1.查询所有列
SELECT *FROM stu;

2.查询指定列
SELECT sid , sname , age  FROM stu;

3.条件查询介绍
条件查询就是在查询给出WHERE子句,在WHERE子句中可以使用如下运算符及关键字;

 = != ,<>, < ,<=,>,>=;

 BETWEEN...AND;范围查询  age BERWEEN 18 AND  30;

 IN (set); 固定的范围之内 用逗号隔开

 IN NULL ; (是空)
 IS NOT NULL (不是空)
 AND; (与)
 OR;(或)
 NOT;(非)



 练习

 2.2 查询性别为女 并且年龄50的记录
 SELECT *FRMO stu WHERE gender='female' AND age<50;


 2.3 查询学号为S_1001,或者姓名为liSi的记录

 SELECT *FRMO stu WHERE sid='S_1001' OR sname = 'liSi';

 2.4 查询学号不是 1,2,3的记录
 SELECT *FROM stu WHERE sid IN('S_1001','S_1002','S_1003');

 2.5 查询学号不是 S_1001 ,S_1002,S_1003的记录
 SELECT *FROM tab_student WHERE s_number NOT IN ('S_1001','S_1002','S_1003');

 2.6 查询年龄为null的记录
 SELECT *FROM stu WHERE age IS NULL;

 2.7 查询年龄在2040之间的学生记录
 SELECT *FROM stu WHERE age >= 20 AND age <= 40;
 或者
 SELECT *FROM stu WHERE age
 BETWEEN 20 AND 40;

 2.8 查询性别非男的学生记录

 SELECT *FROM stu WHERE gender !='male';

 或者 SELECT *FROM stu WHERE
 gender <>'male';或者SELECT *FROM stu WHERE NOT gender ='male';

 2.9 查询姓名不为null的学生记录
 SELECT*FROM stu WHERE sname
 IS NOT NULL;
 或者SELECT*FROM stu WHERE NOT sname IS NULL;

 字段控制查询
 4.1 去除重复记录
 去除重复记录(两行或两行以上记录中系列的上的数据都相同),例如emp表中sal字段就存在相
  同的记录.当只查询emp表的sal字段时,那么会出现重复记录,那么想去除重复记录,需要使用
  DISTINCT:
  SELECT DISTINCT 字段 FEOM emp;

  4.2查看雇员的月薪与佣金之和
  因为sal和comm两列的类型都是数值类型,所以可以做加运算.如果sal或comm中有一个字段不是SELECT *,sal + comm FROM emp;
  注意: 任何数值和 null 值相加 都是null值

什么是数据库?数据库的作用想学数据库必看 (3)数据库操作 排序, 聚合函数 ,分组查询,分页查询,模糊查询,数据完整性
http://blog.csdn.net/qq_36390044/article/details/79633023

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值