数据库的基本操作

一、操作数据库

(1) 创建数据库

CREATE  DATABASE  [IF NOT EXISTS] db_name [create_specification [, create_specification] ...]

    create_specification:   

        [DEFAULT] CHARACTER SET charset_name  |  [DEFAULT] COLLATE collation_name

    创建一个名称为mydb1的数据库。

        create database mydb1;

    创建一个使用gbk字符集的mydb2数据库。

        create database mydb2 character set gbk;

    创建一个使用utf8字符集,并带校对规则的mydb3数据库。

        create database mydb3 character set utf-8 collate utf8_bin;

(2) 查看数据库

    显示数据库语句:

        SHOW DATABASES

    显示数据库创建语句:

        SHOW CREATE DATABASE db_name

    查看当前数据库服务器中的所有数据库

        show databases;

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

        show create database mydb3;

(3)修改数据库

    ALTER  DATABASE  [IF NOT EXISTS] db_name  [alter_specification [, alter_specification] ...]

        alter_specification:   

            [DEFAULT] CHARACTER SET charset_name  |   [DEFAULT] COLLATE collation_name

    查看服务器中的数据库,并把其中mydb2字符集修改为utf8

        alter database mydb2 character set utf8;

(4)删除数据库

    DROP DATABASE  [IF EXISTS]  db_name        

    删除前面创建的mydb1数据库 drop database mydb1;

        drop database mydb1;

(5)选择数据库

    进入数据库:use db_name;

    查看当前所选的数据库: select database();

二、操作表

(1)创建表

CREATE TABLE table_name

    (

        field1  datatype,

        field2  datatype,

        field3  datatype,

    )[character set 字符集] [collate 校对规则]

    field:指定列名 datatype:指定列类型

    创建一个员工表employee

        create table employee(

            id int primary key auto_increment,

            name varchar(20) unique,

            gender bit not null,

            birthday date,

            entry_date date,

            job varchar(40),

            salary double,

            resume text

        );

(2)查看表

    查看表结构:desc tabName

    查看当前数据库中所有表:show tables

    查看当前数据库表建表语句 show create table tabName;

    查看表的相关信息:SHOW TABLE STATUS

    显示employee表的信息

    show table status like 'employee' \G;

(3)修改表

ALTER TABLE table  ADD/MODIFY/DROP/CHARACTER SET/CHANGE  (column datatype [DEFAULT expr][, column datatype]...);

    *修改表的名称:rename table 表名 to 新表名;

    在上面员工表的基本上增加一个image列。

        alter table employee add image blob;

    修改job列,使其长度为60。

        alter table employee modify job varchar(60);

    删除gender列。

        alter table employee drop gender;

    表名改为user。

        rename table employee to user;

    修改表的字符集为gbk

        alter table user character set gbk;

    列名name修改为username

        alter table user change name username varchar(20);

(4)删除表

        DROP TABLE tab_name;

    删除user表

        drop table user;

三、操作表记录CRUD

(1) INSERT

INSERT INTO table [(column [, column...])] VALUES (value [, value...]);

    插入的数据应与字段的数据类型相同。

    数据的大小应在列的规定范围内,例如:不能将一个长度为80的字符串加入到长度为40的列中。

    在values中列出的数据位置必须与被加入的列的排列位置相对应。

    字符和日期型数据应包含在单引号中。

    插入空值:不指定或insert into table value(null)

    如果要插入所有字段可以省写列列表,直接按表中字段顺序写值列表

(2) UPDATE

UPDATE  tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] 

UPDATE语法可以用新值更新原有表行中的各列。

SET子句指示要修改哪些列和要给予哪些值。

WHERE子句指定应更新哪些行。如没有WHERE子句,则更新所有的行

(3) DELETE

如果不使用where子句,将删除表中所有数据。

Delete语句不能删除某一列的值(可使用update)

使用delete语句仅删除记录,不删除表本身。如要删除表,使用drop table语句。

同insert和update一样,从一个表中删除记录将引起其它表的参照完整性问题,在修改数据库数据时,头脑中应该始终不要忘记这个潜在的问题。

外键约束

删除表中数据也可使用TRUNCATE TABLE 语句,它和delete有所不同,参看mysql文档。

(4)SELECT

1.基本查询

    SELECT [DISTINCT] *|{column1, column2. column3..} FROM  table;

    查询表中所有学生的信息。

        select * from exam;

    查询表中所有学生的姓名和对应的英语成绩。

        select name,english from exam;

    过滤表中重复数据

        select distinct english from exam;

    在所有学生分数上加10分特长分显示。

        select name , math+10,english+10,chinese+10 from exam

2.使用where子句进行过滤查询

   查询姓名为张飞的学生成绩

        select * from exam where name='张飞';

    查询英语成绩大于90分的同学

        select * from exam where english > 90;

    查询总分大于230分的所有同学

       select name 姓名,math+english+chinese 总分 from exam where math+english+chinese>230;

    查询英语分数在 80-100之间的同学。

        select * from exam where english between 80 and 100;

 

3.使用order by关键字对查询结果进行排序操作

    SELECT column1, column2. column3.. FROM table where... order by column asc|desc;

    asc 升序 -- 默认就是升序  desc 降序

    对语文成绩排序后输出。

        select name,chinese from exam order by chinese desc;

    对总分排序按从高到低的顺序输出

        select name 姓名,chinese+math+english 总成绩 from exam order by 总成绩 desc;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值