zoukankan      html  css  js  c++  java
  • Mysql之库表操作(胖胖老师)

    SQL
    概念:结构化查询语言(SQL = Structured Query Language),
    也是一种编程语言(数据库查询和程序设计语言),可以用于数据的存取及查询,更新,管理关系型数据库系统
    ps: 不同数据库系统之间的SQL不能完全相互通用;

    分类
    针对操作的对象不同,可以分成不同语言
    1: 数据操作(数据管理)语言  DML(Data Management Language)
        1): 查询数据           DQL
        2): 增, 删, 改           DML
    2: 数据定义语言            DDL(Data Definition Language)     --比如表的定义
    3: 数据控制语言               DCL(Data Control Language)

    ****************************************************************************************************************

    数据库, 表, 数据三者之间的关系
    表是数据的载体, 数据库又是表的容器
    ****************************************************************************************************************




    数据库操作
    mysql> show databases;    --查看所有的数据库
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | test               |
    +--------------------+

    创建数据库
    语法: create database [if not exists] db_name [数据选项]
    例: create database student_system;
    例: create database if not exists student_system;  --会先判断student_system是否已经存在,如果存在就不会创建,可以避免异常

    例:C:WINDOWSsystem32>mysqladmin -uroot -p create bbbb  --可以通过mysqladmin来进行创建
    *********************************************************************

    数据库的命名规则
    1: 见名知意, 建议是使用下划线的方式
    2: 可以使用任意的字符,比如数字,符号,中文等
        create database 胖胖;
    3: 如果命名很特殊,比如是以纯数字或者关键词来命名时,就要使用限定符来包裹(限定符指反引号``);
        create database `123456`;
    4: 是否区分大小写(这个当前的操作系统有关);
    5: 数据库的名字都可以使用反引号来创建
    ***********************************************************************

    ps: 数据库创建时会形成一个目录,目录名是数据库名,如果数据库名是特殊字符,那么文件名会经编码形式来表式
        目录下面会有一个db.opt文件保存着数据库的选择信息;
    ***********************************************************************

    数据库的相关操作
    1: show databases;     --查看所有的数据库
    2: drop [if exists] database bbbb; --删除指定的数据库
    3: show create database student_system;  --查看数据库(student_system)创建信息
        +----------------+------------------------------------------------------------------------+
        | Database       | Create Database                                                        |
        +----------------+------------------------------------------------------------------------+
        | student_system | CREATE DATABASE `student_system` /*!40100 DEFAULT CHARACTER SET gbk */ |
        +----------------+------------------------------------------------------------------------+
    4: alter database db_name [指定的操作]   --修改数据库信息
        例: alter database student_system character set 'utf8';
    ********************************************************************************************************************




    表的相关操作
    表的创建      
        创建语法: create table [if not exists] tbl_name(列结构)[选项]
        表是数据的载体, 数据库又是表的容器,所以在创建表之前,需要先定它所属的那个数据库,
        表一定属性某一个数据库的

    1: 可以在创建表的时候, 在表名之前指明所属的数据库
        create table `student_system`.student(
            name varchar(20),
            sex varchar(3),
            age int
        );
    2: 可以先使用use db_name指明当前默认的数据库,然后再创建表
        use student_system
        create table teacher(
            name varchar(20),
            sex varchar(3),
            age int
        );

    3: show tables;    --查看所有的表,也要先指明当前默认的数据库

    4: show create table teacher;   --查看创建表(teacher) 创建信息
       show create table teacherG

    5: describe teacher;   --查看表(teacher)的结构
        +-------+-------------+------+-----+---------+-------+
        | Field | Type        | Null | Key | Default | Extra |
        +-------+-------------+------+-----+---------+-------+
        | name  | varchar(20) | YES  |     | NULL    |       |
        | sex   | varchar(3)  | YES  |     | NULL    |       |
        | age   | int(11)     | YES  |     | NULL    |       |
        +-------+-------------+------+-----+---------+-------+
        desc teacher;  --可以简写describe teacher;

    6: drop table [if exists] tbl_name;   --删除表(包裹表结构)
        例: drop table student;
        例: drop table if exists student;
    ***************************************************************************************************************

    修改表
    修改表名
    语法:rename table old_table_name to new_table_name
    例: rename table student to student_1;
    例: rename table student_2 to student_1, teacher to teacher_1;   --可以同时修改多个表名
    例: rename table student_1 to `test`.student_2; --可以跨数据库重命名, 可以通过这个表重命名的方式来对数据库重命名



    修改列的定义
    新加列(add)
    alter table student_1 add id int;

    删除列(drop)
    alter table student_1 drop id;

    修改列定义(modify)
    alter table student_1 modify name varchar(10);

    重命名列(change)
    alter table student_1 change age student_age int(3);
    *******************************************************************************************************


    表数据操作(增删改查)
    插入数据(创建数据create)
    语法: insert into 表名(字段列表) values(值列表)
    例: insert into teacher_1(name,age) values('胖胖', 18);
    例: insert into teacher_1 values('小胖','男', 16);   --如果没有指定字段列表,那么要插入的值要和列中的字段顺序一样
        insert into teacher_1(name,age) values('小未', 19);
        insert into teacher_1 values('阿哈','女',18);


    查询数据(读取数据read)
    语法: select 字段列表 from 表名 where 查询条件
    例: select name,age from teacher_1;
    例: select * from teacher_1;   --如果字段列表使用*号来代替, 那么表示查询所有的字段
    例: select * from teacher_1 where name = '胖胖';    --可能使用查询条件进行数据过滤,拿到想要的数据;
    例: select * from teacher_1 where 1;       --where 1表示条件永远成立
        select * from teacher_1 where 0;


    修改数据(update)
    语法: update 表名 set 字段=新值,... where 条件
    例: update teacher_1 set sex='女' where name = '小胖';
        update teacher_1 set sex = '保密', age = 15, name = '阿呵' where name = '阿哈';


    删除数据(delete)
    语法: delete from 表名 where 条件
    例: delete from teacher_1 where age = '18';
    例: delete from teacher_1;   --如果没有条件进行删除,则会删除整个表的删除(不同于drop table teacher_1)
    ps: 在删除数据时,一定要给一个具有严格逻辑判断条件,不然很容易造成数据误删除,最后造成数据的损失



    curd(create update read delete)--增删改查

  • 相关阅读:
    Atitit.code base view 视图的实现原理
    Atitit.code base view 视图的实现原理
    Atitit。  工作流引擎的发展趋势
    Atitit. atiOrder   Order 订单管理框架的设计
    Atitit。  工作流引擎的发展趋势
    Atitit. atiOrder   Order 订单管理框架的设计
    atitit.编程语言 类与对象的 扩展机制.doc
    atitit.编程语言 类与对象的 扩展机制.doc
    Atitit.为什么小公司也要做高大上开源项目
    Atitit.为什么小公司也要做高大上开源项目
  • 原文地址:https://www.cnblogs.com/wadmwz/p/7534720.html
Copyright © 2011-2022 走看看