zoukankan      html  css  js  c++  java
  • 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结尾,前面有几个_就有几个字符

  • 相关阅读:
    Android Studio 单刷《第一行代码》系列 05 —— Fragment 基础
    Android Studio 单刷《第一行代码》系列 04 —— Activity 相关
    Android Studio 单刷《第一行代码》系列 03 —— Activity 基础
    Android Studio 单刷《第一行代码》系列 02 —— 日志工具 LogCat
    Android Studio 单刷《第一行代码》系列 01 —— 第一战 HelloWorld
    IDEA 内网手动添加oracle,mysql等数据源,以及server returns invalid timezone错误配置
    eclipse maven设置
    IntelliJ IDE 常用配置
    eclipse maven 常见问题解决方案
    Maven 安装和配置
  • 原文地址:https://www.cnblogs.com/xslwm/p/10503553.html
Copyright © 2011-2022 走看看