zoukankan      html  css  js  c++  java
  • 数据库1

    新建库

    create DATABASE a1 CHARSET utf8;

    删除库

    DROP DATABASE a1;

    使用库

    一般不这么用,使用的时候,一般就直接双击就好了,方便快捷;

    USE a1;

    查看库

    1

    查看现在所有的库名

    SHOW DATABASEs;
    

    2,查看当前使用的库

    SELECT DATABASE();

    3,查看创建库信息

    SHOW CREATE DATABASE a1;

    表操作:

    创建表;

    CREATE TABLE info(id int not NULL auto_increment PRIMARY KEY,
    NAME VARCHAR(50) not NULL,
    sex Char(2) NULL
    )

    查看表:

    SELECT * FROM info;       #查看表
    DESC info;                      #查看表结构
    
    show CREATE table info;   #查看表创建信息

    删除表

    DROP TABLE info;

    添加表字段:

    ALTER TABLE info add age int not NULL;

    删除表字段

    ALTER TABLE info drop age;

    改变字段属性

    ALTER TABLE info MODIFY name CHAR(23) null;

    修改表字段名

    ALTER table info CHANGE NAME name2 VARCHAR(45) not NULL;

    添加主键

    需要注意的是,添加主键的时候,表一定不能是设置成自动递增的

    先去除自增

    alter table info1 modify id int null , drop primary key;
    ALTER TABLE info add PRIMARY KEY(id,name)

    删除主键

    ALTER TABLE info drop PRIMARY key;

    设置默认值;

    ALTER TABLE info ALTER sex SET DEFAULT '';

    删除默认值

    ALTER TABLE info ALTER sex  DROP DEFAULT;

    修改表名

    RENAME TABLE info to info1

    复制表

    CREATE TABLE info2 SELECT * FROM info1 ;

    复制一行

    :主键自增/索引/触发器/外键 不会 被复制

    会复制数据

    CREATE TABLE info3 SELECT * FROM info1 WHERE id=1;

    复制结构

    数据/触发器/外键 不会被复制 

    会复制主键自增

    CREATE TABLE info5 SELECT * FROM info1 WHERE 1!=1;
    CREATE TABLE info2 LIKE info1;

    数据操作;

    1增

    这种增的方法是有多少字段就要添加几项

    INSERT INTO info1 VALUES(2,'陈平安','');

    如果选择添加

    需要注意的是此时,除了id其余的不要设置主键,和不可以为空

    INSERT INTO info1(id,name) VALUES(4,'');

     同时也可以一次性增加多个:

    INSERT into info1(id,name) VALUES(8,'七娃'),(9,'六娃')

    删除:

     删除指定数据

    DELETE FROM info1 WHERE id='0'

    删除整张表中所有数据

    DELETE FROM info1

    清空整张表

    truncate  info1;
    1、TRUNCATE 在各种表上无论是大的还是小的都非常快。而DELETE 操作会被表中数据量的大小影响其执行效率.
    2、TRUNCATE是一个DDL语言而DELETE是DML语句,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。
    3、TRUNCATE不能触发触发器,DELETE会触发触发器。
    4、当表被清空后表和表的索引和自增主键将重新设置成初始大小,而delete则不能。

    修改

    指定修改

    UPDATE info1 set sex='女娃',name='小六' WHERE id=1;

    1简单查询

    查询所有

    SELECT * FROM info1;

    按指定字段查询

    select name,sex FROM info1;

    为字段起别名

    select name,sex as '' FROM info1;

    可进行列表列运算

    SELECT name+34 FROM info1;

    去重复查询

    select DISTINCT name FROM info1;

    distinct后面可以同时跟着几个字段,如果跟着多个字段,意思就是,要同时满足这几个条件才能去重复

    2 条件查询

    运算符

    SELECT * FROM info1 WHERE age>20;
    SELECT * FROM info1 WHERE age<20;
    SELECT * FROM info1 WHERE age<=20;
    SELECT * FROM info1 WHERE age>=20;
    SELECT * FROM info1 WHERE age<>20;
    SELECT * FROM info1 WHERE age!=20;

    关键字null

    SELECT * FROM info1 WHERE sex is not NULL;
    SELECT * FROM info1 WHERE age is NULL;
    SELECT * FROM info1 WHERE sex = '';

    这里需要注意的是当需要输入字符串的栏里,如果是空的,那么此时应该用=而不是null

    3逻辑运算,and  or

    SELECT * FROM info1 WHERE age=23 and sex='';
    SELECT * FROM info1 WHERE age=23 or sex='';
    SELECT * FROM info1 WHERE not (age=23 or sex='');

    4区间查询

    SELECT * FROM info1 WHERE age between 18 and 20;

    5 集合查询

    SELECT * FROM info1 WHERE id in(1,3);

    6 模糊查询

    SELECT * FROM info1 WHERE name LIKE '%e%';  包含什么
    SELECT * FROM info1 WHERE name LIKE 'e%';      以什么开头
    SELECT * FROM info1 WHERE name LIKE '%e';      以什么结尾
    SELECT * FROM info1 WHERE name LIKE '__%e';     下划线占位符

    7 排序查询

    SELECT * FROM info1 order by age desc;
    SELECT * FROM info1 order by convert (name using gbk) desc;  中文排序
  • 相关阅读:
    算法面试准备(一)之----交叉熵与logistic回归推导
    Julia初学备忘
    二维数组中的查找,替换空格
    快慢指针倒数第K个节点,每K个一组反转链表
    贝叶斯网络之----(d-分离步骤)
    一笑
    尾曲
    ggplot在python中的使用(plotnine)
    SVC之SMO算法理解
    特征选取之IV(信息值)及python实现
  • 原文地址:https://www.cnblogs.com/xuguangzong/p/8475959.html
Copyright © 2011-2022 走看看