zoukankan      html  css  js  c++  java
  • 基本的SQL语句

    一:SQL:

        1、定义:结构化查询语言,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言

      2、用途:用于存取、查询、更新、管理关系数据库系统

      3、分类:

        (1)DDL语句:数据库定义语言,数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER

        (2)DML语句:数据库操纵语言,插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT

        (3)DCL语句:数据库控制语言,如控制用户的访问权限GRANT、REVOKE

      4、常用的关系数据库:mysql 、SQL Server、Oracle、Sybase、DB2等

        常用的非关系数据库:NoSql、Cloudant、MongoDb、redis、HBase 

    二:SQL语句

    1、操作库:

    1)增:create database db1 charset utf8;
    
    (2)删:drop database db1;
    
    (3)改:alter database db1 charset latin1;
    
    (4)查:show databases;

    2、操作表

    1)进入库中:use db1;

    2)增:create table t1(id int,name char);

    3)删:drop table t1;

    (4)查:show tables;

    (5)查看表结构:desc t1;    //可以查看表的结构定义

                  show create table t1; //除了能看到表定义外,还可以看到engine(存储引擎)和charset(字符集)等信息

    3、操作字段:

    1)增加字段:alter table t1 add column age int ;
    
    (2)删除字段:alter table t1 drop column  age;
    
    (3)修改字段:alter table t1 modify name char(3); //修改字段属性
    
                 alter table t1 change name name1 char(2);//修改字段名称和属性

    4、操作表中的记录

    (1)增:insert into t1 values(1,"zhang"),(2,"wang"),(3,"zhao");
    
    (2)删:delete from t1 where id=1;
    
    (3)改:update t1 set name="liu" where id=2;
    
    (4)查:select * from t1;
    
    (5)清空表:delete *from t1;       #如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始
              truncate table t1;     #数据量大,删除速度比上一条快,且直接从零开始

     三:MySQL表的完整性约束

    NOT NULL        //非空约束,指定某列不能为空;
    
    UNIQUE          //唯一约束,指定某列或者几列组合不能重复
    
    PRIMARY KEY     //主键,指该列的值可以唯一标识该记录
    
    FOREIGN KEY     //外键,指定该行记录从属于主表中的一条记录,主要用于参照完整性

    1、NOT NULL:

    create table t1(id int not null);        //规定id字段不能为空
    
    create table t1(id int not null default 1);    //规定id字段不能为空且默认值为1
    
    
    default:当某一列有许多重复值出现时,不需要一次次添加,只需设定默认值即可

    添加默认值:alter table t1 alter id set default 1;

    删除默认值:alter table t1 alter id drop default;

    2、UNIQUE:

    方法1:
    
    create table t1(id int unique);
    
    方法2:
    
    create table t1(id int,unique(id));
    
    
    方法2还可用于多个字段联合唯一:
    
    create table t1(id int,name char(10),age int,uniq(id,name));

    添加唯一约束alter table t1 add unique(id);

    3、PRIMARY KEY

    表示主键的方法如下:
    
    方法一:
    
    create table t1(id int not null unique);
    
    方法二:
    
    create table t1(id int primary key);
    
    方法三:
    
    create table t1(id int,primary key(id));
    
    方法三还可以多字段联合主键:
    
    create table t1(id int ,name char(10),age int ,primary key(id,name));

    删除主键alter table t1 drop primary key;

    添加主键alter table t1 add primary key(id);

    扩展:

    AUTO_INCREMENT      //表示自增
    create table t1(id int primary key auto_increment,name char(10),sex enum('male','female') default 'male');   //id 为主键自增,sex单选,默认"male"

    修改自增长值:alter table t1
    auto_increment=10;

    删除自增长alter table t1 modify id int primary key; //modify 不能删除主键,删除主键用drop

    4、FOREIKEY

    create table t1(
        id_1 int primary key,
        name char(10)
        )engine=innodb; //父表被关联的字段必须唯一,表类型必须是innodb存储引擎
    
    create table t2(
        id_2 int,name char(10),
        id_1 int ,
        foreign key(id_1)
        references t1(id_1) 
        on delete cascade   //级联删除
        on update cascade  //级联更新
        )engine=innodb;
    
    注意:外键关联父表的主键 同步更新、同步删除

    修改表的存储引擎:alter table t1 engine=INNODB; //支持外键,行锁,查表总行数时,全表扫描
             alter table t1 engine=MYISAM; //不支持外键,表锁,查表总行数时,不需要全表扫描

    查看表的存储引擎:show create table t1;


  • 相关阅读:
    [Java]如何把当前时间插入到数据库
    [Java]Get与Post,客户端跳转与服务器端跳转
    [Java]MyBatis框架
    [Java]Java分层概念(转)
    [Java]Spring框架
    [Java]JavaScript在这里学习
    [Java]Servlet&JSP
    [Java]jdbc[转]
    [工具]GitHub上整理的一些工具[转]
    [Java] 集合框架
  • 原文地址:https://www.cnblogs.com/chunqiu666/p/12720731.html
Copyright © 2011-2022 走看看