数据库复习1

来源:互联网 发布:点播软件 编辑:程序博客网 时间:2024/05/17 08:39

1.常用的数据库软件

  a. 大型数据库:Oracle——Oracle(甲骨文)公司

   DB2——IBM公司

Sybase——Sybase公司(较早采用C/S技术)

  b. 中小型数据库:Sql Server——microsoft,支持C/S结构,采用标准SQL语言

   MySql——体积小,速度快,开发源码,很多中小型网站为降低成本选择MySql作为网站数据库

  c. 小型数据库:Microsoft Access


2. 常用概念

  RDBMS: Relational Database Management System

  SQL:      Structured Query Language

  DBA:      Database Administrator

  Table:    表


3. 连接数据库

  a. 用telnet连接服务器——telnet ip地址

  b. sqlplus:oracle提供的客户端工具

      用sqlplus连接数据库sqlplus 用户名/密码


4. 建表

    例如:Create table user(

   Id number(4),

Passwd char(4),

Name char(20),

Email varchar2(50)

        );

   Number(n);

   Number(n, m) 总长n位(不含小数点),小数点后m位

   Char(n) 定长字符串,方便查询

   Varchar(n) 变长字符串,节省空间

   Varchar2(n) Oracle自己定义的变长字符串

   Date 日期

注:清屏clear scr



4. 插入数据

   例子:insert into user values(

123, '456', 'wangqing', '448565793@qq.com');


5. 查找数据

   例子:select * from user;


6. sqlplus 命令

    a. sqlplus命令不加分号结尾, sql语句以分号结尾

    b. 设置行的宽度: set linesize 200——显示200个字符再换行

    c. 设置列的宽度:column name format a6——设置列name宽度为6个字符

        column id format 9999——设置列id为4个数字

        注:在Oracle中,字符和数字是区别对待的,所以设置格式也是区别对待

        注:column可简写为col, format可简写为for

    d. 查看表的结构:desc user(表名)

    e. /  ——执行上一条sql语句,忽略sqlplus命令

    f. 设置分页显示   set pagesize 100 —— 每100行分页显示

                               set pagesize 0    —— 设置为0则不分页显示

        注: pagesize 可以简写为pages


7. 查询语句

    a. 查询id = 100, passwd = ‘1234’的考生的名字

       select name from user where id  = 100 and passwd = '1234';

    b. 列的别名

       select name, salary, salary*12 year_sal from emp;


8. 删除表

    drop table user(表名);


9. 空值

    1)Oracle中空值的概念:null

    a.任何数据都可以为空值

    b.空值和任何数据做算术运算,结果都为空值

    c.空值和字符串类型做连接操作,结果相当于空值不存在


   2)nvl(d1, d2):如果d1为空值,那么用d2替代

   注:nvl参数的类型可以为数字,字符,日期,但是两个参数的类型必须一致


   3)插入空值的时候:

       insert into user values(111, 'wangqing', null, null);

       可以简写为

       insert into user(id, name) values(111, ‘wangqing’);


   4)查找空值举例

      select id, nvl(name, 'no name') from user;


10. 复制表

    create table emp_wangqing as select * from emp_yuqingqing;


11. distinct关键字:去除重复的

    select distinct job from s_emp;

    select distinct dptno from s_emp;


12. 大小写问题

    1) sql语句大小写不敏感,但是对于数据的大小写敏感

    2) lower()函数

       select * from user where lower(name) = 'wangqing';

    3) upper()函数

       select * from user where upper(name) = 'WANGQING';


13. between …and…关键字

    1) 为闭区间

    2) select * from user where salary <= 10000 and salary >= 5000;

        select * from user where salary between 5000 and 10000;


14. in(列表)

     select * from user where name = 'wangqing' or name = 'yuqing';

     select * from user where name in('wangqing', 'yuqing');


15. 模糊匹配 like % _

      1) %代表0到多个字符

      2)_代表一个字符

     select * from user where lower(job) like '%sale%';

     select * from user where lower(name) like '_wang%';

     查询数据库中有多少个以'S_'开头的表

     select count(*) from user_tables where table_name like 'S\_%' escape '\';


15. 否定形式

     1) 判断为空要用 is null 和 is not null

     2) not between and

     3) not in(list);


16. sql语言分类

     1) DDL(data difinition language)数据定义语句

    常用:create, drop, alter(修改), truncate(清空)

     2) DML(data manipulation language) 数据操纵语句

常用:insert,update(更新操作), delete(删除操作)

     3) DQL (data query language) 数据查询语句

        常用:select

     4) 事物控制语句(用来对DML进行确认操作)

        常用:commit, rollback


add:

1.字符串拼接

select first_name||last_name name from s_emp;




0 0
原创粉丝点击