数据库简单操作

来源:互联网 发布:数据采集系统101data 编辑:程序博客网 时间:2024/06/16 07:26

MySQL数据库操作

数据保存

数据可以保存在内存、文件、软件,各自的优缺点:

数据保存在内存:优点: 存取速度快缺点: 数据不能永远保存!!!数据保存在文件:优点: 数据永远保存!!!缺点: 速度比内存操作慢,频繁的IO操作。查询数据不方便数据保存在软件:    1)数据永远保存!!!    2)速度比较快    3)查询和管理数据方便

MySQL数据库

开源产品。免费的。与java平台兼容性最好.中小企业(中小应用)
MySql的下载和安装可以网上查找。关于MySQL的可视化界面软件有Navicat for MySQL,SQLyog,可以很方便的进行建数据库和表,以及插入数据。

    MySQL的结构:    先有数据库 -> 再有表  ->再有数据

管理数据库

首先看数据库管理软件中有哪些数据库:

    SHOW DATABASES;

1. 创建数据库 testdb是创建的数据库名字:CREATE DATABASE 数据库名;如:

    CREATE DATABASE testdb;

2. 使用某一个数据库,可以是: use 数据库名;如:

    USE testdb;

3. 删除数据库:drop database 数据库名;

DROP DATABASE testdb;

管理数据库中的表(其中大写字母单词是在SQLyog中根据是否为系统关键字设置,大写的为系统默认的关键字)

  1. 创建(这里列名就是字段名称,这里为了便于理解,我使用列名表示,习惯了)
    create table 表名(列名 类型,列名 类型,……);
    如下,创建一个员工staff表:

    CREATE TABLE staff(id INT,NAME VARCHAR(20),gender VARCHAR(2),email VARCHAR(10),remark VARCHAR(50));

查看一个表结构:desc 表名; 以表格格式返回

    DESC  staff;

2. 删除 drop table 表名;

    DROP TABLE staff;

3. 修改

    alter table 表名 add(change、drop、change) column 列名 (类型视情况而定)

添加列

    ALTER TABLE staff ADD COLUMN age INT;

修改列类型

    ALTER TABLE staff MODIFY email VARCHAR(50);

修改列名称:这个操作改完之后,再把这一列改为gender;

    ALTER TABLE staff CHANGE COLUMN gender sex VARCHAR(4);   ALTER TABLE staff CHANGE COLUMN sex gender VARCHAR(4); 

删除列

    ALTER TABLE staff DROP COLUMN remark;

修改表名

    ALTER TABLE staff CHANGE NAME username VARCHAR(20);

管理数据

  1. 查看表的数据

    SELECT * FROM staff;  
  2. 插入数据

    INSERT INTO staff(id,username,gender,email,age) VALUES(1,'aaa','w','111@163.com',56);INSERT INTO staff(id,username,gender,age) VALUES(2,'bbb','m',19);INSERT INTO staff VALUES(3,'ccc','w','222@qq.com',34);INSERT INTO staff(id,username,gender) VALUES(4,'ddd','w');INSERT INTO staff(id,username,gender,age) VALUES(5,'aab','m',23);INSERT INTO staff(id,username,gender) VALUES(6,'eee','w');
  3. 修改数据
    将所有人的年龄设置为10:

    UPDATE staff SET age=10;

    将id为4的人的性别设置为m:

    UPDATE staff SET gender='m' WHERE id=4;

    将id为4的员工性别设置为ww,email为email@qq.com:

    UPDATE staff SET gender='ww',email='email@qq.com' WHERE id=4;
  4. 删除数据
    删除staff中的全部数据:

    DELETE FROM staff;

删除id=6的数据:

    DELETE FROM staff WHERE id=6;

删除性别为w的数据:

    DELETE FROM staff WHERE gender='w';

查询数据

查询指定列:

    SELECT email,username FROM staff;

查询年龄大于30的员工的id,名字,年龄:

    SELECT id,username,age FROM staff WHERE age>30;

查询年龄大于20,小于50的id,性别:

    SELECT id,gender FROM staff WHERE age>20 AND age<50;

查询邮箱为null的id和性别:

    SELECT id,gender FROM staff WHERE email IS NULL;

查询名字中有a的id,用户名:

    SELECT id,username FROM staff WHERE username LIKE '%a%';

为了进行下面的查询,现在插入如下数据:
增加两列,语文和数学成绩:

    ALTER TABLE staff ADD COLUMN chinese INT,ADD COLUMN math INT;    UPDATE staff SET chinese=80,math=100 WHERE id=1;    UPDATE staff SET chinese=76,math=90 WHERE id=2;    UPDATE staff SET chinese=87,math=89 WHERE id=3;    UPDATE staff SET chinese=87,math=78 WHERE id=4;    UPDATE staff SET chinese=97,math=86 WHERE id=5;    UPDATE staff SET chinese=77,math=89 WHERE id=6;

查询数学总成绩:

    SELECT SUM(math) FROM staff;

查询语文的平均成绩:

    SELECT AVG(chinese) FROM staff;

查询id大于1的学生的语文最高成绩:

    SELECT MAX(chinese) FROM staff WHERE id>1;

查询数学最低成绩:

    SELECT MIN(math) FROM staff;

员工的所有人数:

    SELECT COUNT(*) FROM staff;

查询分组数据:

    SELECT username,COUNT(*) FROM staff GROUP BY gender;

查询分组数据中分组的数量大于1:

    SELECT username,COUNT(*) FROM staff GROUP BY gender HAVING COUNT(*)>1;

查询
查询第1,2,3条数据:

    SELECT id,username ,gender FROM staff LIMIT 0,3;

查询第4,5,6条数据:

    SELECT id,username ,gender FROM staff LIMIT 3,3;

查询所有数据,按照语文成绩倒序排列:

    SELECT * FROM staff ORDER BY chinese DESC;

查询数学成绩大于80的所有数据,按数学成绩的倒序排:

    SELECT * FROM staff WHERE math>80 ORDER BY math DESC;

查询时指定别名:

    SELECT id AS '编号',username AS '姓名',gender AS '性别' FROM staff;

查询时进行相加计算,只能数字类型:

    SELECT id '编号',username '姓名',(chinese+math)AS '总成绩' FROM staff;

删除数据:
区别:

    delete from 和 truncate table 的区别?

1)delete from删除全部,也可以按条件删除,但是truncate table只能全表删除,不能按条件删除
2)delete from删除的数据可以回滚,truncate table删除的数据不能回滚。
3)delete from不可以把自增长约束(auto_increment)重置,truncate table可以把自增长约束(auto_increment)重置

    TRUNCATE TABLE staff;    DELETE FROM staff;

总结

凡是操作数据库,都加 DATABASE关键字;
凡是操作表的,都加TABLE关键字;
修改表的,加COLUMN关键字;使用ALTER;
进行数据的增删改查的,什么都不加,直接写具体的表名称;
INSERT INTO 表名……;
DELETE FROM 表名……;
UPDATE 表名 SET……;
SELECT …… FROM 表名……;

原创粉丝点击