• MySQL基础语法


    net start MySQL57
    net stop MySQL57

    mysql -h localhost -u root -p

    查看引擎
    show engines;
    show variables like '%storage_engine';

    show databases;

    创建数据库
    create database test_db;

    show create database test_db;

    删除数据库
    drop database test_db;

    选择数据库
    use test_db;

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

    查看表
    show tables;

    创建表
    create table tb_l
    (
    id INT(11),
    name VARCHAR(25),
    deptId INT(11),
    salary FLOAT
    );

    指定表主键,在创建时: id INT(11) primary key
    或者在salary FLOAT,后加primary key(id)
    主键由多个字段组成, primary key(id,deptId)

    create table tb_2
    (
    id INT(11) primary key,
    name VARCHAR(25),
    deptId INT(11),
    salary FLOAT
    );

    create table tb_3
    (
    id INT(11),
    name VARCHAR(25),
    deptId INT(11),
    salary FLOAT,
    primary key(id,deptId)
    );

    添加主键约束,使用 ALTER TABLE 语句添加主键,必须把主键列声明为不包含 NULL 值(在表首次创建时)。
    alter table tb_3 add primary key (id);

    删除主键 alter table tb_3 drop primary key;


    外键约束

    一个表中的一个字段是另一个表的主键,
    如员工表tb_4的部门Id: deptId
    和部门表tb_dept的主键id关联

    deptId为外键,tb_4为从表(子表)
    tb_dept为主表(父表)

    外键约束
    create table tb_dept
    (
    id INT(11) primary key,
    name VARCHAR(25),
    location VARCHAR(50)
    );

    create table tb_4
    (
    id INT(11) primary key,
    name VARCHAR(25),
    deptId INT(11),
    salary FLOAT,
    constraint fk_4_dept foreign key(deptId) references tb_dept(id)
    );

    在表tb_4上添加了名称为fk_4_dept的外键约束,外键名称为deptId,其依赖于表tb_dept的主键id
    );之间可加engine=指定引擎,外键关联的表需要引擎相同

    alter table tb_4 add foreign key (deptId) references tb_dept(id);
    alter table tb_4 add constraint fk_4_dept foreign key (deptId) references tb_dept(id);//有命名

    非空约束not null
    唯一性约束nuique
    create table tb_5
    (
    id INT(11) primary key,
    name VARCHAR(25) not null,
    deptId INT(11) nuique,
    salary FLOAT
    );


    create table tb_6
    (
    id INT(11) primary key,
    name VARCHAR(25),
    deptId INT(11),
    salary FLOAT,
    constraint sth unique(name)
    );

    默认值
    create table tb_7
    (
    id INT(11) default 1111
    );

    自动增加,一个表只能有一个字段使用auto_increment
    初始值为1,每增加一条记录,字段值自动加1
    且该字段必须为主键的一部分
    字段需为整数类型 TINYINT SMALLIN INT BIGINT

    create table tb_8
    (
    id INT(11) primary key auto_increment,
    );


    查看表的字段信息
    describe/desc tb_2;

    查看表详细结构
    show create table tb_2;

    修改表名
    alter table tb_2 rename tb_1; rename后可加一个to

    修改字段名
    alter table tb_2 change id idd int(20); //可以只改字段的数据类型

    修改字段的数据类型
    alter table tb_2 modify id VARCHAR(30); //之后还可加约束条件not null、first、after等
    修改字段的排列位置
    alter table tb_2 modify name varchar(50) first; //或者after另一个字段

    添加字段
    alter table tb_2 add loc VARCHAR(50);
    其后可添加约束条件
    alter table tb_2 add c1 VARCHAR(10) not null;

    alter table tb_2 add c2 VARCHAR(10) not null first; //添加c2为第一列

    alter table tb_2 add c3 VARCHAR(10) after id; //添加到指定列后面


    删除字段
    alter table tb_2 drop c2;

    更改表的存储引擎
    alter table tb_2 engine=MyISAM;
    可用show create table tb_2;查看

    删除表的外键约束
    alter table tb_5 drop foreign key fk_4_dept;

    删除没有被关联的表
    drop table if exists tb_2, tb_3; //if exists用于判断表是否存在

    删除被其他表关联的主表
    可以先删除子表,再删除父表
    也可先删除外键约束再删除主表


    删除表中所有数据
    delete from tb_2;


    数据库数据类型
    1. 整数类型 tinyint(1个字节)、smallint(2个字节)、mediumint(3个字节)、int(4个字节)、bigint(8个字节)
    id int(11), 11表示显示宽度
    year int(4) 只显示4位数字的宽度
    小于宽度用空格填充,大于宽度但不超过取值范围,依然可以插入而且能显示出来

    浮点小数类型 float(4个字节)、double(8个字节)
    定点小数类型 decimal(m,n) 压缩的'严格'定点数 m+2个字节
    m表示精度,表示总共的位数
    n表示小数位数
    create table tmp(
    x float(4,1),
    y double(4,1),
    z decimal(4,1)
    );

    insert into tmp values(5.12, 5.15, 5.123);

    select * from tmp;
    x y z
    5.1 5.2 5.1
    z被截断有警告



    2.日期/时间类型 year(1个字节)、time(3个字节)、date(3个字节)、datetime(8个字节)、timestamp(4个字节)
    3.字符串类型 char固定长度、varchar变长、binary、varbinary、blob、text、enum、set等,分文本字符串和二进制字符串

    create table fruits(
    f_id char(10) not null,
    s_id int not null,
    f_name char(255) not null,
    f_price decimal(8,2) not null,
    primary key(f_id)
    );

    insert fruits (f_id,s_id,f_name,f_price)
    values('a1',101,'apple',5.2),
    ('b1',101,'blackberry',10.2),
    ('bs1',102,'orange',11.2),
    ('bs2',105,'melon',8.2),
    ('t1',102,'banana',10.3),
    ('t2',102,'grape',5.3),
    ('o2',103,'cocount',9.2),
    ('c0',101,'cherry',3.2),
    ('a2',103,'apricot',2.2),
    ('l2',104,'lemon',6.4),
    ('b2',104,'berry',7.6),
    ('m1',106,'mango',15.7),
    ('m2',105,'xbabay',2.6),
    ('t4',107,'xbababa',3.6),
    ('m3',105,'xxtt',11.6),
    ('b5',107,'xxxx',3.6);

    select f_id,f_name from fruits;
    select *from fruits;
    desc fruits;
    show create table fruits;


    select f_id, s_id, f_name, f_price from fruits;
    select *from fruits where f_price<=10;
    select *from fruits where f_price between 2 and 6;

    select s_id,f_name,f_price from fruits where s_id in (101,102,105) order by f_name desc;//降序
    select s_id,f_name,f_price from fruits where s_id not in (101,102,105) order by s_id asc;//升序

    select *from fruits where f_name like 'b%';  //以b开头
    select *from fruits where f_name like '%g%';  //含有g
    select *from fruits where f_name like 'b%y';   //以b开头 y结尾
    select *from fruits where f_name like '____y'; //以y结尾,前面有几个_就有几个字符

  • 相关阅读:
    【20211012】以确定去适应不确定
    【20211011】工作之余
    【20211009】二孩的心思
    【20211010】幸福声响
    【20211007】连岳摘抄
    【读书笔记】《创新与企业家精神》
    【20211006】连岳摘抄
    【20211008】生活规律,事情也好解决
    ASP.NET中DataGrid的简单用法
    无限级分类的实现
  • 原文地址:https://www.cnblogs.com/xslwm/p/10503553.html
Copyright © 2020-2023  润新知