MySql基础1

97 阅读4分钟

参考文档 MySQL 教程

一、数据库连接

每次打开数据库 都需要输入输入用户名和密码 然后设置gbk(第一次设置即可)

mysql -hlocalhost -uroot -p 
set names gbk;

二、数据库操作

  • 查看数据数据库
show database;
  • 创建数据库
create database 数据库名 charset utf8; 
  • 删除现有数据库
drop database 数据库名;
  • 修改现有数据库

    修改数据库,其实只是修改数据库的字符编码或校队规则 其实一般不需要修改

alter database 数据库名 charset 新的字符集名称 collate  新的校队规则;
  • 使用数据库
use 数据名;
  • 其他数据库操作
show charset;  查看可用字符集
show collation; 查看可用校对规则
show create database 数据库名;查看库创建信息

三、表操作

数据库 只是一个外壳,除了有个数据库名称和字符集设定,基本没有别的信息了。数据表才是存储数据的具体容器。

  • 查看所有表
show tables;
  • 创建表

    1.字段的形式为:字段名 字段类型 [字段属性] 创建表必须最低有一个字段 否则报错、 字段都需要用()包裹起来

    2.charset字符集包括:utf8、gbk、big5等。默认不写 就是默认了

    3.engine表类型包括:InnoDB,MyIsam、BDB等默认是InnoDB 可以不写

create table 表名 (字段,字段2) charset utf8 ; 
例如:
create table user (id int);   -创建user
  • 删除表
drop table 表名;
  • 修改表 修改表主要是修改表名、添加字段、修改字段、删除字段、修改表的字符集。 1.修改表名
    alter table 表名 rename 新表名;
    
    2.添加字段 新增字段 使用 after、first时候 不能用括号()包裹新增的字段 不然sql执行失败
    alter table 表名 add 字段;
    例如:
    alter table login add sex int;
    alter table login add (sex int);   --- 加括号包裹也可以的
    添加字段的位置 可以根据关键字 after、first来控制字段的顺序
    alter table login add male int after age;  ---这里的新增字段不能加()括号包裹不然sql执行失败。
    
    3.修改字段 change 相当于替换之前的字段名和字段信息、 modify 修改字段信息
    alter table 表名 change 旧字段名 新字段名 字段类型;
    alter table 表名 modify 修改的字段名 字段类型;
    例如:
    alter table login change sig newsig int; ---可以把之前sig 字段修改成int类型的 字段名切换newsig,位置保持不变
     alter table login2 modify sex varchar(10);
    
    4.删除字段
    alter table 表名 drop 字段名;
    例如:
     alter table login2 drop sig1;
    
    5.修改表的字符集
    alter table 表名 charset 新字符集;
    例如:
    alter table login2 charset utf8;
    show create table login2;  ---- 查看修改后的结果 
    
  • 其他表操作
des 表名;     ---- 查看表结构
show create table 表名;   ----查看表的创建语句

四、数据操作

数据都是存储在数据表中。数据的基本操作有4中:增(插入insert)、删(删除delete)、改(修改update)、查(查询select)。即所谓的CRUD:create、retrieve、update、delete。

  • 插入数据 语句形式:insert into 表名(字段1,字段2,......) values(数据1,数据2,......); 说明: 1.字段名和数据是一一对应的 奥康:数量一致,顺序一致,类型匹配 2.对于要写入的数据,字符串和时间日期类型 要用单引号引起来 3.可以省略“字段列表”部分,此时就需要给字段数量一样多的数据 4.设置表的charset gbk才能写中文数据 utf8好像不行 cmd下这个以后看看 我插入数据先把表charset设置gbk
    例如:先查看 select *from 表名 查看表内所有数据
    insert into login(name,age,sex) values('mosi',2,2); ---- //全体赋值
    insert into login(name,sex) values('mosi',2);---赋值一部分
    insert into login(sex) value(2); ---- 赋值单个  values不行 改成value
    insert into login(age,name) values(4,'bst'); ----顺序可以颠倒
     insert into login values('dog',20,2); ---- 必须所有字段对应上
    
    • 查询数据 语句形式:select 字段,字段2 form 表名 [where 条件] 说明: 1.select后的字段必须是表中字段列表中的字段 2.select 后可以使用一个 * 代表取出表中所有字段 3.where 条件表示取出的数据所应满足的条件,比如:where id < 10 表示取出那些字段id的值要小于10的行。 4.where可以不写代表取出所有行的数据。

       select name from login;  ----取出name字段所有值
       select name,age from login;  ----取出name和age字段值
       select * from login;  ----取出表中所有值
       select name,age from login where age > 10; ---取出name和age的值中其中age 大于10的值
      
  • 删除数据 语句形式:delete from 表名 [where 条件]; 说明: 1.删除剧指的是删除表的某些行 2.where 条件表示删除数据所应满足的条件,含义跟select中的一样。 3.where 条件不写 如果不写 则会删除所有数据 - 不要轻易删库跑路
     delete  from login where age < 5; --- 删除age 小于5的数据
     delete  from login;  ---- 删除所有数据啦
    
  • 修改数据 语句形式:update 表名 set 字段名 = 新值,字段名 = 新值 ... [where 条件]; 说明: 1.修改数据指的是修改表的某些行的某些字段 2.where 条件表示修改数据所应满足条件 不写则是所有数据
     update login set age = 26 where name = 'yuanli';  --- 设置yuanli年龄是26