01-数据库的基本操作

本文均为Linux系统的数据库操作


    ----mysql服务器

    sudo service mysql start   ------------------- 启动mysql服务器

    mysqladmin -u root shutdown   ----------------关闭mysql服务器 

    ----查看服务器是否开启

    ps -ef |grep mysql

    如果MySql已经启动,以上命令将输出mysql进程列表

数据库的操作:

    ------连接数据库

    mysql -u root -p 

    mysql -u root -p密码

    ------退出数据库

    quit / exit / cirl+D

    ------sql语句需要有分号;结尾

    --如果语句没写完,不小心按到enter键,继续输入即可   

 

    select version();------显示数据库版本 

    select now();------显示现在时间

    ------创建数据库

    create database 数据库名;            --默认charset=拉丁

    create database 数据库名  charset=utf8;   --有中文一定用此方法创建

    ------查看所有数据库

    show databases;

    -------删除数据库

    drop database 数据库名;    

    drop database `数据库名;------如果数据库名中含有特殊符号,在数据库名前加`

    ------选择数据库

    use 数据库名;

    ------查看当前使用的数据库

    select database();


数据表的操作 

    

    show table;---------显示数据库中的所有表

    -------创建数据表

    --auto-increment 表示自动增长

    --not null   表示不能为空

    --primary key 表示主键

    --defualt     默认值

    create table 数据表名字(字段 类型  约束| 字段 类型  约束|)

    create table xxxxx(id int, name varchar(30));

    create table xxxxx(id int primary key not null, name varchar(30));

     --换行格式如下

    create table xxxxx(

      id int primary key not null,

       name varchar(30)

      );

    -------desc 数据表的名字

    ------显示表的状态,包括列名(column name),各个列的类型(Type),各个列的值类型,主外键(Key),默认值,其他

  实例:

    ---创建students表(id,name,age,hight,gender,cls_id )

    create table student(

      id int unsigned not null auto_increment primary key,

      name varchar(30),

      age tinyint unsighed default 0,

      high decimal(5,2),

      gender enum("男","女") defuault "保密",

      cls_id int unsighed

    );

     ------插入某一个数据

    insert into students values(0,"老王",18, 188.88, "男",0);

    -----创建classes表(id,“班级”)

    create table classes(

      id int unsigned not null auto_increment primary key,

      name varchar(30)

      );

    

    --------查看表创建语句

    ------show create table 表名;

  

    ----修改表----添加字段

    ---alter table 表名 add 列名 类型;

    alter table students add birthday;

    ----修改表---修改字段      (不要重命名,修改类型)

    ---alter table 表名 modify 列名 类型及约束;

    alter table classes students modify  birthday data;(原为datatime)

    ----修改表----修改字段   (重命名)

    ----alter table 表名 change 列名 类型及约束;

    ---alter table students change birthday birth data;

    ----修改表---删除字段

    ----alter table 表名 drop 列名;

    alter table students drop high;

    ----删除表

    ----drop table 表名;

    drop table classes;

    --------查看表的内容

    -------select * from 表名;

    select * from classes;


增删改查(重点)

    ----全列插入

    ----insert into 表名 values(....)

    ----主键字段可以用0 null default 来占位

    ----向classes表中插入 一个班级

    insert into classes values(0,"菜鸟班")

+------------+-------------+---------+-----------+-------------+-------------+
|    id |     name |  age |  high   |  gender |     cls_id |
+------------+-------------+---------+-----------+-------------+-------------+
| 1            |          老王 |       18 |   188.80 |           男 |               0 |
+------------+------------+----------+-----------+-------------+-------------+

    ----向students插入一个学生

    insert into students values(0, "小李飞刀", 20,165, "女",123)

    ---在枚举中,1对应第一个元素,2对应第二个元素,3对应第三个,以此类推。

    ----部分插入 

    insert into students (name,gender) values ("小乔",2);

    -----多行插入

    insert into students (name,gender) values ("小乔",2),("大乔",2),("貂蝉",2),("吕布",1);

    ----修改

    update 表名 set 要改的列内容 

    update students set gender=1;     ---- --------gender全部被改

    update students set gender=1 where id=1;-----------只改id=1中的gender

    update students set age=22,gender=2 where id=1;-----id=1的age, gender被改

    

    ----删除

    ----物理删除

    delete from 表名;------整个表名都被删除

    delete from students where name="小李飞刀"

    ---逻辑删除

    ----用一个字段来表示,这条信息是否已经不再使用了

    -----给students表添加一个is_delete字段 bit 类型

    -----  alter table students add is_delete  bit defualt 0;

    -----is_delect=0没删, is_delect=1删了

    update students set is_delete=1 where id =6;    --删了id=6

  

    ---查询基本使用

    ---查询所有列

    ----select * from 表名;

    select * from students;

    ----定条件查询

    select * from students where name ="小李飞刀" ;----查询名为小李飞刀的所有信息

    select * from students where 

    ----查询指定列

    select name,gender from students;

    -----可以使用as 为列或表指定别名

    select 字段 as 别名 ,字段 as 别名 from 表名;

    select name as 姓名,gender as 性别 from students;

    -----字段顺序查询

    select id as 序号,gender as 性别,name as 姓名 from students;

    --去重

    --distinct 字段

    select distinct gender from students;

    

    

原文地址:https://www.cnblogs.com/latecomer/p/10278944.html