• mysql单表


    数据库的创建和删除
      黑窗口启动数据库服务:net start mysql
      关闭数据库服务:net stop mysql

    创建数据库
    使用关键字create database
    格式:
    create database 数据库名;
    create database 数据库名 character set 字符集;

    查看mysql中所有的数据库
    show databases;

    查看某个数据库的定义信息
    show create database 数据库名 例:show create database mybase;

    切换数据库
    use 数据库名 例:use test;

    查看正在使用的数据库
    select database;

    删除数据库
    drop database 数据库名称 例:drop database test;

    创建数据库中的表.

    使用关键字create table
    []在数据库中是可选的意思,可以有,可以没有
    格式:
    create table 表名(
      字段名 数据类型[长度] [约束],
      字段名 数据类型[长度] [约束],
      ......
      字段名 数据类型[长度] [约束](最后一个不能有逗号)
    );
    例:创建商品分类表category
    create table category(
      cid int primary key,
      cname varchar(100)
    );

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

    查看表结构
    desc 表名 例:desc category;


    删除表
    格式:drop table 表名
    例:drop table category;

    修改表添加列
    alter table 表名 add 列名 类型[长度] [约束];
    例:alter table category add name int ;

    修改表修改列的类型长度及约束
    alter table 表名 modify 列名 类型[长度] [约束];
    注意:如果有数据 ,必须注意数据类型varchar-->容易有错误数据
    例:alter table category modify description int;
    alter table category modify description varchar(20) not null;


    修改列名以及数据类型和约束
    alter tble 表名 drop 列名;
    注意:如果列中有数据 数据就会一起删除了 需谨慎
    例:alter table category drop descr;


    修改表名
    rename table 表名 to 新表名
    例:rename table category to student;

    修改表的字符集
    alter table 表名 character set 字符集
    注意:不建议执行 有可能会产生乱码
    例:alter table category character set gbk;


    往数据库表中插入数据
    使用关键字insert [into]
    格式:
    包含主键:insert into 表名(字段1,字段2,....) values (值1,值2,....);
    主键自增,省略主键:insert into 表名 (不包含主键) values (不包含主键);
    注意事项:
    1.字段和值一定要一一对应(个数,数据类型)
    2.除了数值类型(int ,double),其他的数据类型都需要使用引号包裹起来
    可以使用''.也可以使用"",建议使用''
    包含主键:insert into 表名 (字段1,字段2,...) values (值1,值2,....);
    例:insert into category (cid,cname) values (1,"服装");
    insert into category (cid,cname) values (1,"彩电");


    创建category表主键自增auto_increment(主键自己添加,自己增长)
    例:create table category(
      cid int primary key auto_increment,
      cname varchar(100)
    );
    主键自增,省略主键:insert into 表名 (不包含主键) values (不包含主键);
    例:insert into category (cname) values ("彩电");

    批量插入数据
    格式:
    包含主键:insert into 表名 (字段1,字段2,...) values (值1,值2,...),(值1,值2,...),(值1,值2,...);
    主键自增,省略主键:insert into 表名 (不包含主键) values (值1,值2,...),(值1,值2,...)..;
    insert into category (cid,cname) values (3,'空调'),(4,'洗衣机');
    insert into category (cname) values ('微波炉'),('电磁炉');


    省略字段名格式:必须给出全部字段的值(包含主键)
    格式:
    insert into 表名 values (全部字段的值);
    insert into 表名 values (全部字段的值),(全部字段的值),..;
    例:insert into category values(7,'冰箱');
    insert into category values(8,'笔记本电脑'),('台式机');


    添加数据,记不住主键的情况下,可以使用null ,sql会自动计算主键
    例:insert into category values (null,'小米6');

    更新表数据,使用关键字update(更新,修改) set(设置)
    格式:
    不带条件过滤,一次修改列中所有的数据
    update 表名 set 字段名=字段值,字段名=字段值,...;
    带条件过滤,使用关键字where
    update 表名 set 字段名=字段值,字段名=字段值,...where 过滤条件;
    不低条件过滤(慎用)
    例:update category set cname='全部修改';
    带条件过滤,使用关键字where
    update category set cname='黑白电视机' where cid=4;


    删除表数据 使用关键字delete from
    格式:
    delete from 表名 [where 条件过滤];
    delete from 表名 删除表中的所有数据,但是不会删除主键自增
    truncate table 表名;删除表中的所有数据,会删除主键自增,让主键自增重置从1开始
    delete from 表名 [where 条件过滤];
    例:delete from category where cid=4;
    delete from 表名
    例:delete from category;
    使用delete删除之后插入数据,主键会出现断号,没有之前的序号
    insert into category (cname) values ('手机');
    delete from category where cid=12;
    insert into category (cid,cname) values(12,'手动插入指定的主键列');

    truncate table 表名
    例:truncate table category


    主键约束
    使用关键primary key
    作用:
    约束主键列不能为null
    不能重复
    每个表都必须有一个主键,且只能有一个主键
    主键不能使用业务数据


    添加主键的第一种方式
    在列名之后直接添加
    create table persons(
      Id_p int primary key,
      LastName varchar(255),
      FirstName varchar(255),
      Address varchar(255),
      City varchar(255)
    );
    insert into persons(Id_p,LastName) values (1,'张');
    insert into persons(Id_p,LastName) values (null,'张');-- 非空
    insert into persons(Id_p,LastName) values (1,'张');-- 重复


    添加主键的第二种方式
    使用constraint区域
    格式:
    [constraint 名称] primary key (字段列表)
    CREATE TABLE persons(
      Id_P INT,
      LastName VARCHAR(255),
      FirstName VARCHAR(255),
      Address VARCHAR(255),
      City VARCHAR(255),
      CONSTRAINT pk_id_p PRIMARY KEY(Id_P)
    );
    constraint如果不给出主键的名字,可以省略关键字constraint
    CREATE TABLE persons(
      Id_P INT,
      LastName VARCHAR(255),
      FirstName VARCHAR(255),
      Address VARCHAR(255),
      City VARCHAR(255),
      PRIMARY KEY(Id_P)
    );


    添加主键的第三种方式
    创建表之后,通过修改表结构,添加主键的第一种方式
    alter table 表名 add [constraint 名称] primary key (字段列表);
    CREATE TABLE persons(
      Id_P INT,
      LastName VARCHAR(255),
      FirstName VARCHAR(255),
      Address VARCHAR(255),
      City VARCHAR(255)
    );
    ALTER TABLE persons ADD PRIMARY KEY(Id_P);


    删除主键
    alter table persons drop primary key;


    联合主键
    使用两个以上的字段为主键
    CREATE TABLE persons(
      Id_P INT,
      LastName VARCHAR(255),
      FirstName VARCHAR(255),
      Address VARCHAR(255),
      City VARCHAR(255),
      PRIMARY KEY(LastName,FirstName)
    );


    非空约束
    使用关键字not null
    作用:强制约束某一列不能为null(不接受null值)

    创建非空约束的第一种格式,创建表示,字段后直接给出
    CREATE TABLE persons(
      Id_P INT PRIMARY KEY AUTO_INCREMENT,
      LastName VARCHAR(255),
      FirstName VARCHAR(255),
      Address VARCHAR(255),
      City VARCHAR(255) NOT NULL
    );
    添加数据
    INSERT INTO persons(lastname,city) VALUES('张','雄县');
    INSERT INTO persons(lastname,city) VALUES('李','null');
    INSERT INTO persons(lastname,city) VALUES('王','');
    INSERT INTO persons(lastname,city) VALUES('赵',NULL);-- Column 'City' cannot be null


    java四大皆空
    String s ="";s="null" s=null; void

    创建非空约束方式二
    修改表结构
    alter table 表名 modify 列名 类型[长度] [约束];
    CREATE TABLE persons(
      Id_P INT PRIMARY KEY AUTO_INCREMENT,
      LastName VARCHAR(255),
      FirstName VARCHAR(255),
      Address VARCHAR(255),
      City VARCHAR(255)
    );
    ALTER TABLE persons MODIFY city VARCHAR(255)NOT NULL;

    删除非空约束
    alter table persons modify city varchar(255);

    唯一约束
    使用关键字unique
    作用:添加了唯一约束的字段,不能重复

    创建唯一约束的第一种格式,创建表时,在字段后直接给出
    CREATE TABLE persons(
      Id_P INT PRIMARY KEY AUTO_INCREMENT,
      LastName VARCHAR(255),
      FirstName VARCHAR(255),
      Address VARCHAR(255),
      City VARCHAR(255) UNIQUE
    );
    INSERT INTO persons (lastname,city) VALUES('张','毛里求斯');
    -- Duplicate entry '毛里求斯' for key 'City'
    INSERT INTO persons (lastname,city) VALUES('王','毛里求斯');


    创建唯一约束的第二种格式,创建表时使用[constraint 名称] unique (字段列表)
    CREATE TABLE persons(
      Id_P INT PRIMARY KEY AUTO_INCREMENT,
      LastName VARCHAR(255),
      FirstName VARCHAR(255),
      Address VARCHAR(255),
      City VARCHAR(255),
      CONSTRAINT UNIQUE(City)
    );

    创建唯一约束的第三种格式,创建表之后,修改表数据
    alter table 表名 modify 列名 类型[长度] [约束];
    CREATE TABLE persons(
      Id_P INT PRIMARY KEY AUTO_INCREMENT,
      LastName VARCHAR(255),
      FirstName VARCHAR(255),
      Address VARCHAR(255),
      City VARCHAR(255)
    );
    ALTER TABLE persons MODIFY city VARCHAR(255) UNIQUE;
    alter table 表名 add [constraint 名称] unique (字段列表)
    CREATE TABLE persons(
      Id_P INT PRIMARY KEY AUTO_INCREMENT,
      LastName VARCHAR(255),
      FirstName VARCHAR(255),
      Address VARCHAR(255),
      City VARCHAR(255)
    );
    ALTER TABLE persons ADD UNIQUE(City);


    删除唯一约束
    alert table persons drop index 名称
    定义约束的时候,如果没有创建名称,则名称为字符串
    alter table persons drop index city;


    默认约束
    给字段添加一个默认值,如果字段没有插入值,则使用默认值
    使用关键字default值
    创建默认约束方式一,创建表,列数据类型后面 default '默认值'
    CREATE TABLE persons(
      Id_P INT PRIMARY KEY AUTO_INCREMENT,
      LastName VARCHAR(255),
      FirstName VARCHAR(255),
      Address VARCHAR(255),
      City VARCHAR(255)DEFAULT '中国'
    );
    INSERT INTO persons (lastname) VALUES('张');
    INSERT INTO persons (lastname,city) VALUES('张','加拿大');

  • 相关阅读:
    STL常见用法
    7-1 求a/b的高精度值 (70分)
    迷宫问题
    ES6新特性之箭头函数语法
    2020软件工程作业05
    2020软件工程作业04
    CTF之SQL注入1
    CTF之Git泄露
    CTF之网站源码
    CTF之HTTP基础认证
  • 原文地址:https://www.cnblogs.com/caigq/p/7049188.html
Copyright © 2020-2023  润新知