数据库SQL语句操作

–数据库连接:

      1、mysql管理人默认为root,没有设置密码则直接登录
               mysql -h host -u root  -p 不用输入密码按回车自动进入
      2、如果想设置mysql密码
               mysqladmin -u root password 123456
      3、如果你的root现在有密码了(123456),那么修改密码为abcdef的命令是:
              mysqladmin -u root -p password abcdef

– 数据库操作

-- 链接数据库 
mysql -uroot -p123456
-- 退出数据库 
exit/quit/ctrl + d
-- 显示版本
select version();

-- 显示时间
select now();

-- 查看所有数据库
show databases;

-- 创建数据库
-- create database 数据库名 charset=utf8;
create database python;
create database python charset=utf8;

--查看当前使用数据库
select database();

-- 使用数据库
-- user 数据库名
use python;
-- 删除数据库
-- drop database 数据库名;
drop database python;

– 数据表操作

   --desc 数据表名字; 查看数据表结构
   desc xxxxx;
   --查看当前数据库中所有表
   show tables;
   --创建表
   --auto_increment表示自动增长
   --not null 表示不能为空
   --primary key 表示主键
   --default 默认值
   -- create table 表名(字段 类型 约束[, 字段 类型 约束]);
   -- 创建classes的表(id, name)
    create table x1(id int, name varchar(30));
    create table x2(
        id int primary key not null auto_increment, 
        name varchar(30)
    );
    create table x3(
        id int unsigned not null auto_increment primary key,
        name  varchar(30),
        age tinyint unsigned default 0,
        high decimal(5,2),
        gender enum("男", "女", "保密") default "保密",
        cls_id int unsigned
    );

    -- mysql> desc x3;
    -- +--------+------------------------+------+-----+---------+----------------+
    -- | Field  | Type                   | Null | Key | Default | Extra          |
    -- +--------+------------------------+------+-----+---------+----------------+
    -- | id     | int unsigned           | NO   | PRI | NULL    | auto_increment |
    -- | nema   | varchar(30)            | YES  |     | NULL    |                |
    -- | age    | tinyint unsigned       | YES  |     | 0       |                |
    -- | high   | decimal(5,2)           | YES  |     | NULL    |                |
    -- | gender | enum('男','女','保密') | YES  |     | 保密    |                |
    -- | cls_id | int unsigned           | YES  |     | NULL    |                |
    -- +--------+------------------------+------+-----+---------+----------------+
    -- 6 rows in set (0.00 sec)
-- 修改表-添加字段
-- alter table 表名 add 列名 类型;
alter table x3 add birthday datetime;
-- 修改表-添加字段:不重命名
-- alter table 表名 modify 列名 类型及约束;
alter table x3 modify birthday date;
-- 修改表-添加字段:重命名
-- alter table 表名 change 原名 新名 类型及约束;
alter table x3 change birthday11 birthday22 date default "1995-05-04";
-- 修改表-删除字段
-- alter table 表名 drop 列名; 删除一般少用
alter table x3 drop birthday22;

--插入数据
insert into x3 values(0, "老王", 18, 188.88, "男", 0);
select * from x3;
    -- mysql> select * from x3;
    -- +----+------+------+--------+--------+--------+
    -- | id | nema | age  | high   | gender | cls_id |
    -- +----+------+------+--------+--------+--------+
    -- |  1 | 老王 |   18 | 188.88 | 男     |      0 |
    -- +----+------+------+--------+--------+--------+
    -- 1 row in set (0.00 sec)

   -- drop table 表名 删除表
    drop database 数据库;
    drop table 数据表;

   -- delete from 表名 清空表
   -- truncate from 表名 清空表

   --查询表的创建语句
   --show create table 表名字;

–数据增删改查

--增加
    --全列插入
    --insert [into] 表名 values();
    --主键任意添值占位
    -- +----------+------------------------+------+-----+---------+----------------+
    -- | Field    | Type                   | Null | Key | Default | Extra          |
    -- +----------+------------------------+------+-----+---------+----------------+
    -- | id       | int unsigned           | NO   | PRI | NULL    | auto_increment |
    -- | name     | varchar(30)            | YES  |     | NULL    |                |
    -- | age      | tinyint unsigned       | YES  |     | 0       |                |
    -- | gender   | enum('男','女','保密') | YES  |     | 保密    |                |
    -- | cls_id   | int unsigned           | YES  |     | NULL    |                |
    -- | birthday | date                   | YES  |     | NULL    |                |
    -- +----------+------------------------+------+-----+---------+----------------+
    
    insert into x3 values(0, "小王", 20, "男", 1,"1995-06-06");
    select * from x3;
    --insert into x3 values(0, "小王", 20, "1", 1,"1995-06-06");
    -- 枚举中数据对应索引从1开始
    +----+------+------+--------+--------+------------+
    | id | name | age  | gender | cls_id | birthday   |
    +----+------+------+--------+--------+------------+
    |  1 | 老王 |   18 | 男     |      0 | NULL       |
    |  2 | 小王 |   20 | 男     |      1 | 1995-06-06 |
    +----+------+------+--------+--------+------------+
    --部分插入
    --insert [into] 表名 (列1...) values(值1...);
        insert into x3 (name, age) values ("大王", 20);
        select * from x3;
        +----+------+------+--------+--------+------------+
        | id | name | age  | gender | cls_id | birthday   |
        +----+------+------+--------+--------+------------+
        |  1 | 老王 |   18 | 男     |      0 | NULL       |
        |  2 | 小王 |   20 | 男     |      1 | 1995-06-06 |
        |  3 | 大王 |   20 | 保密   |   NULL | NULL       |
        +----+------+------+--------+--------+------------+
--多行插入
    insert into x3 (name, age) values ("大王", 20), ("老李", 20);

--修改
    --update 表名字 set 列1=value1,列2=value2... where 条件
    update x3 set name="老王new",age=19 where id=1;
    update x3 set age=19 where id=1;


--查询
    --全查 where条件
    select * from x3;
    --where条件
    select * from x3 where age=19;
    --查询指定列
    --select 列1,列2 from 表名;
    select name,age from x3;
    --可以使用as为列或表指定名
    --select 字段 [as 别名],字段 [as 别名] from x3;
    select name as 姓名,age as 年龄 from x3;            
上一篇:程序设计思维与实践月模拟题X3


下一篇:结对编程