数据库管理系统 :DBMS(data base management system ),包括Oracle,mysql, SQLserver, sybase, db2.
数据库 :DB(data base)
结构化查询语言 :SQL
数据库中事务的四大特性(ACID):原子性(Atomicity);一致性(Consistency);隔离性 (Isolation);⑷ 持久性(Durability)
SQL的分类:
1,数据库查询语言(DQL,Data Query Language):包括:select
2,数据库操作语言(DML,Data Manipulation Language) : 包括:insert,delete,update
3,数据库定义语言(DDL,Data Denifition Language):包括:creat ,drop, alter
4,事务控制语言(TCL,Trasactional Control Language):包括:commit ,rollback
5,数据控制语言(DCL,Data Control Language)包括:grant ,revoke
表是一种结构化的文件,可以用来存储特定类型的数据,表中有以下几个概念:列、行、主键。
启动MySQL服务:net start mysql
停止MySQL服务:net stop mysql
登录mysql: mysql –uusername –ppassword
使用MySQL命令行客户端来装载数据库
创建数据库:create database ;
选择数据库:use bjpowernode;
导入数据库:source D:\bjpowernode.sql
删除数据库:drop database bjpowernode;
查看数据库的相关命令
查看诠数据库管理系统中所有的数据库:show databases;
查看所bjpowernode数据库中的所有表格:show tables;
查看描述表的结构:desc 表名;
常用命令
查看MySQL版本(进入MySQL前):mysql --version
mysql -V(注:大写字母V)
创建数据库:mysql>create database bjpowernode;
use 数据库名称:use bjpowernode;
退出MySQL:可使用exit、 \q戒exit;最方便快捷的是crtl+c
查看和指定现有的数据库:show databases;
查看当前使用的数据库:select database();
查看当前数据库中的表:show tables;
查看其它数据库中的表:show tables from 数据库名称;
查看表结构:desc 表名称;
简单查询命令:
注:在SQL语句中不区分大小写;SQL语句以“;”分号结束
查诟员工姓名:select ename from emp;
注:select询句后面跟的是字段名称,select是关键字,select和字段名称之间采用空格隔开,from表示将要查诟的表,它和字段之间采用空格隔开。
查询多个字段:select empno,ename from emp;
注:多个字段查询时,字段不字段之间用“,”隔开
查询全部字段:select * from emp;
列出员工的编号,姓名和年薪:select empno,ename,sal*12 from emp;
注:字段上可以使用数学表达式,只要SQL语句中有 select 关键字,不会修改底层数据库字
段的值;
注:
- 重命名为中文时必须加单引号或双引号;
- 标准SQL询句中类型为字符串时必须加单引号,加单引号适用于任何数据库;
- SQL询句中类型为字符串时也可加双引号,叧适用于MySQL数据库中;
- 为了SQL询句的通用性,建议全部使用单引号;
条件查询
1,支持如下运算:
查询薪水为5000的员工:select empno,ename,sal from emp where sal = 5000;
查询薪水不等于5000 的员工:select empno,ename,sal from emp where sal <> 5000;
查询工作岗位不等于MANAGER的员工:select empno,ename,job from emp where job <>MANAGER’;
between … and …操作符:select empno,ename,sal from emp where sal between 1600 and 3000;
查询津贴为空的员工:select empno,ename,comm from emp where comm is null;
注:null类型比较特殊,必须用is来比较。
and操作符:
查询工作岗位为“MANAGER”并且薪水大于2500的员工:select empno,ename,job,sal from emp where job =‘MANAGER’ and sal > 2500;
or:查询出 job 为 SALESMAN 和 job为MANAGER的员工:select ename,job from emp where job = ‘SALESMAN’or job =‘MANAGER’;
注:and的优先级高于or
not:查询出薪水不是1600和薪水不是3000的员工:select ename,sal from emp where not (sal = 1600 or sal = 3000);
查询出津贴不为null的员工:select * from emp where comm is not null;