数据库简介:
1.Oracle数据库
- 提起数据库,第一个想到的公司,一般都是Oracle(甲骨文)
2.SQL Server数据库:微软开发的,是web最流行的用于存储数据的数据库,广泛应用于电子商务,银行,保险,电力等与数据库有关的行业
收费且不好用,因此,如今用的越来越少
3.MySQL数据库(被Oracle收购)
4.操作命令:
- 启动:mysql; (Linux中启动:sudo service mysql start)
- 清屏:clear;
- 退出:exit;
- 登录(进入)mysql常用的是:mysql -u root -p; (-u用户名,-p用户密码,其中如果没有设置用户名则root为默认的用户名)
- 敲击后会提示输入密码(输入后没有显示,隐码输入),如果刚安装好MYSQL没设置密码,超级用户root是没有密码的,故直接回车即可进入到MYSQL中
- 显示当前所有数据库:show databases;
- 进入(切换到)一个数据库:use 数据库名;
- 显示当前数据库内容(数据库的所有表):show tables;
- 显示某个表的所有数据:select * from 表名;
- 显示表中的一些字段:select 字段1,字段2,字段3 from 表名; 例如:select id,name,salary from tbwork;
- 创建表:create table 表名
(id int,
name char(10),
age int,
score float);(各个属性和对应类型设置好即可)
例1:
create table stu
(id int,
name char(10),
age int,
score float);
-
- 显示表:show tables;
- 显示表stu的结构:desc stu;(或者describe stu;)
例2:创建表class,id设置为主键,班级人数默认值为30(如果你不设置人数默认为30): PS:一旦id设置为主键,则在插入数据不能重复,且插入数据时必须加上id
create table class
(id int primary key, (若要不为空:id int primary key not null,)
name char(20),
num int default 30);
-
- 插入:insert into 表名(字段) values(字段) PS:多个加s
- 接着插入一条数据到表stu:insert into stu(id,name,age,score) values(101,'Tom',20,98);
PS:前面几个字段,后面对应几个字段,字符串用单引号或者双引号;
2.插入一条数据到表class,不写班级人数:
-
- 数据为:id是1004,name为Water
- 命令:insert into class(in,name) values(1004,'Water');
- 紧接着查询class的信息:select * from class; (发现1004的人数为30,因为没有插入人数,上面默认人数为30)
- 修改表stu:
- update 表名 set 修改字段和值 where 哪个id;
- 例如:修改表stu中id为101的分数为96:update stu set score=96 where id=101;
- 例如:表stu中每人年龄每过一年加1,怎么修改:update stu set age=age+1;
- 修改stu的结构,在stu中增加地址addr:alter table stu add addr char(60); (此时select * from stu可以发现表中score后面多了addr一项)
- 紧接着想在score和addr中间加生日bd:alter table stu add bd char(6) after score;
- 接着想改bd为出生年份year:alter table stu change bd year int;
- 删除字段year:alter table stu drop year;
- update 表名 set 修改字段和值 where 哪个id;
- 查询:
- 选择查询某一列:select 字段 from stu; 例如:select id from stu; (多列加上多个字段即可)
- 有条件选择某一行:select * from stu where 条件;
- 例如:
- select * from stu where id=101;
- select * from stu where score>96;
- select * from stu where score<96 and score >94;
- select * from stu where score<96 and id=107;
- select * from stu where score>97 or score<93;
- select * from stu where name='Rose';
select * from stu where name like 'xLx';(like是通配符,xLx表示只要name中包含L的都选择查询出来)
select * from stu where name like 'Lx';(Lx表示name中L在开头的)
select * from stu where name like 'xL';(Lx表示name中L在最后的的)
select * from stu where score like 'x9x';(分数score中有9的)
-
-
- select * from stu where id=101 or id=102 or id=103; 等价于:select * from stu where id in(101,102,103); (用in()集合更方便)
-
- 多表复合查询:
- 例如:
- 在上面的表中,查询表work中id等于表salary中工资salary为8500的wid的信息:select * from work where id=(select wid from salary where salary=8500);