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

    1.回顾:
    1.MySQL默认端口号是多少? 3306
    2.MySQL中的超级用户叫什么? root
    3.创建数据库的语句? CREATE DATABASE JD CHARSET=utf8;
    4.修改数据库的语句? alter database 库名 charset=utf8;
    5.删除数据库的语句? DROP DATABASE JD;
    6.查看数据库的语句? SELECT DATABASE();


    2.数据表:
    数据库是由数据表组成的,数据是存在数据表里的。


    4.使用数据库:
    USE python;


    5.创建表:
    -- create table 表名(字段名 类型名 约束);
    create table classes(
    id int unsigned auto_increment primary key,
    name varchar(20) not null
    );

    create table students (
    id int unsigned auto_increment primary key,
    name varchar(30) not null,
    age tinyint unsigned default 0,
    high decimal(5,2),
    gender enum("男", "女", "中性", "保密") default "保密",
    cls_id int unsigned,
    foreign key(cls_id) references classes(id)
    );

    insert classes values(0,"网工1706a"),(0,"网工1705a");

    6.查看数据表:
    SHOW TABLES; --查看所有的表
    DESC students; --查看表结构
    SHOW CREATE TABLE classes; --查看创表语句


    7.删除表:
    DROP TABLE classes;


    8.增删改查(curd):

    1.插入记录:
    -- INSERT [INTO] 表名 [(列名,....)] VALUES(数据,......);

    -- 全列插入
    -- insert 表名 values (...)
    insert students values(0,"张三",20,175,"男",1);

    -- 部分插入
    -- insert into 表名(列1,...) values(值1,...)
    insert students (name,high) values ("王二", 173);

    -- 多行插入
    insert students (name, high) values ("刘备", 160),("张飞", 178);


    2.记录查找:
    -- SELECT 列名,.... FROM 表名 [ WHERE 条件]

    1.查询所有列
    -- select * from 表名;
    -- 注意 :“ * ” 号可以表示所有字段(列)
    select * from students;

    2.指定条件查询
    -- 条件可以使用 > < >= <= AND OR 
    select * from students where age > 21;
    -- 查询名字中带有 "王" 字的所有人信息: 
    select * from students where name like "%王%";
    -- 查询id小于3且年龄等于20的所有人信息: 
    select * from students where id<3 and age=20;


    3.查询指定列
    -- select 列1,列2,... from 表名;
    select name, gender from students;
    select gender, name from students;


    4.可以使用as为列或表指定别名
    -- select 列1【 as 名字】,列2【 as 名字】,... from 表名;
    select name as '姓名', gender as '性别' from students;


    3.修改:
    -- update 表名 set 列1=值1,列2=值2... where 条件

    -- 把id为1的同学,年龄改为10,性别改为保密
    update students set age=10,gender=4 where id=1;

    -- 将所有人的年龄增加1: 
    update students set age=age+1;


    4.删除:

    1.物理删除
    -- 基本用法为:
    delete from 表名称 where 删除条件;

    -- 删除id为2的行: 
    delete from students where id=2;
    -- 删除所有年龄小于20岁的数据: 
    delete from students where age<20;
    -- 删除表中的所有数据: 
    delete from students;

    2.逻辑删除
    -- 用一个字段来表示 这条信息是否已经不能再使用了
    -- alter table students add is_delete bit default 0;
    update students set is_delete=1 where id=5;

    9.表结构的修改:

    1.添加字段
    -- alter table 表名 add 列名 列数据类型 [after 插入位置];
    -- 示例:
    -- alter table 表名 add 列名 类型;z'//'1'

    -- 在名为 age 的列后插入列 address: 
    alter table students add birthday datetime after age;

    2.删除字段
    -- alter table 表名 drop 列名;
    alter table students drop high;

    3.修改字段:不重命名版
    -- alter table 表名 modify 列名 类型及约束;
    alter table students modify birthday date;

    4.修改字段:重命名版
    -- alter table 表名 change 原名 新名 类型及约束;
    alter table students change birthday birth date;

    5.表格重命名:
    基本形式: 
    -- alter table 表名 rename 新表名;
    示例: 
    -- 重命名 students 表为 workmates: 
    alter table students rename workmates;

    10.表的约束:确保表中数据的完整性,唯一性

    常用7种约束:
    unsigned: 无符号约束,指定数字不能为负数
    -- 数字(整数,小数)

      not null: 非空约束,指定某列不为空

    auto_increment: 自动增长约束,序号自动加一
    -- 注意:必须与主键组合使用
    -- 默认情况下,初始值为1,每次增量为1

      unique: 唯一约束,指定某列和几列组合的数据不能重复
    -- 唯一约束可以保证记录的唯一性
    -- 唯一约束的字段可以为空值(NULL)
    -- 每张数据表可以存储多个唯一约束

      primary key: 主键约束,指定某列的数据不能重复、唯一
    -- 每张数据表只能存在一个主键
    -- 主键保证记录的唯一性
    -- 主键自动为NOT NULL

      foreign key: 外键,指定该列记录属于主表中的一条记录,参照另一条数据

    default 0: 当插入数据的时候,如果字段没有数据,则自动插入默认值

    11.备份和恢复:(了解)
    -- 数据库的备份
    mysqldump -uroot -p python > python.sql; 
    -- 恢复
    -- 先建一个新的数据库 create database newpython charset=utf8;
    mysql -uroot -p newpython < python.sql;

  • 相关阅读:
    linux_java_同时启动三个项目脚本
    Python 项目-飞机大战_02.飞机大战-2
    Python 项目-飞机大战_01.飞机大战-1
    Mysql为什么要使用视图?
    Python语法基础_10.加强练习
    Python语法基础_09.面向对象3、异常、模块
    crontab--设置周期性被执行的指令
    面试者应向公司问什么问题?
    简单的触发黑名单阻断演示 control+c
    SetConsoleCtrlHandler演示
  • 原文地址:https://www.cnblogs.com/fang12311/p/13357246.html
Copyright © 2011-2022 走看看