Mysql的基本操作1

1. 选择或创建一个数据库

    新建语法: create database 数据库名字;

create database sss;

    使用(切换)库: use 数据库名;

use test2;

    查询有那些数据库:show databases;

show database;

2. 显示表
    show tables;

show tables;

3.创建表
  create table 表名(
           列名1 类型 约束,
           列名2 类型 约束,
            ...
           列名n 类型 约束,
            约束
   );

create table student(
   sid int,
   sname varchar(20),
   sex char
);

4.查看表结构
   desc 表名;

desc student;

5. 插入数据
    insert into 表名(列1, 列2...列n) values (值1,值2... 值n);

insert into student(sid,sname,sex) values(1,'张三','男');

--也可以同时插入多行数据

insert into studnet(sid,sname,sex) values(1,'张三','男'),(2,'李四','男');


6. 查询数据
    select 列1,列2....列n from 表名;

--查询该学生表sid这一列
select sid,name from student;
--查询该表中所有学生的所有信息
select * from student;

7. 数据类型
    整数类型
           int -2^31 ~ 2^31-1   四个字节
           tinyint 一个字节
           smallint 两个字节
           bigint 八个字节
    小数类型
           浮点类型
                 FLOAT 
                 DOUBLE
           定点类型 (小数部分不会丢失精度,占用空间高)
                 DECIMAL(p, s)
                 p 有效数字长度
                 s 小数位数
        
     字符串类型
            char(最大长度)    定长的字符类型
            varchar(最大长度)  变长的字符类型
    name char(5)  'abc'  存储后  'abc  '  用空格补齐不足的部分, 再查询时会去掉, 效率高,但占用空间多, 最大值255
    name varchar(5) 'abc'  存储后 'abc'    不会用空格补齐 , 不会占用额外空间, 效率较char低, 最大值65535
    
    日期类型
          datetime 包括年月日,时分秒 时间范围短(1000-1-1 ~ 9999-12-31)
          date    只包括年月日
          time    只包括时分秒
          timestamp  也可以包括年月日时分秒, 时间范围短(1970-1-1 ~ 2038-1-19)
    

create table test(
    a datetime,
    b date,
    c time,
    d timestamp
);

--now() 获取当前时间

insert into test(a,b,c,d) values(now(),now(),now(),now());
insert into test(a) values('1999-5-8 10:30:00');

8. 约束
         -- 把约束加在类型之后
            create table student(
                sid int unique,
                sname varchar(20),
                birthday date,
                sex char(1)
           );
          -- 把约束单独一行
             create table student(
                 sid int not null,
                 sname varchar(20) not null,
                 birthday date,
                 sex char(1),
                 unique(sid)
              );
 

       unique 唯一约束,一个表中可以有多个唯一约束
       not null 非空约束, 让列的取值不能为空
       primary key 主键约束, 效果上综合的唯一和非空, 一个表只能有一个主键
       foreign key 外键约束, 检查两表的关系列是否合法, 被引用的列必须是唯一的
       check (mysql不支持)
 

--创建一个班级表,cid为主键
create table class(
   cid int primary key,
   cname varchar(20)
);

--创建一个学生表,sid为主键,sname不为空,cid为外键
create table student(
  sid int primary key,
  sname varchar(20) not null,
  birthday date,
  sex char(1),
  cid int,
  foreign key(cid) references class(cid) /* student中的cid取值必须引用class中的cid的值 */
);
create table student(
  sid int,
  sname varchar(20) not null,
  birthday date,
  sex char(1),
  cid int,
  primary key(sid),
  foreign key(cid) references class(cid) /* student中的cid取值必须引用class中的cid的值 */
);
//向学生表中插入数据
insert into student(sid,sname,birthday,sex,cid)values(1,'张三',now(),'男',2);
insert into student(sid,sname,birthday,sex,cid)values(2,'李四',now(),'男',3);

9. 自增列 (主要用在给主键产生一个唯一值)
    auto_increment : 产生一个自动增长的值

create table course(
    cid int primary key auto_increment, /*产生一个自动增长的值*/
    cname varchar(10)
);
insert into course(cid, cname) values(null, 'java se'); -- 给null
insert into course(cname) values('web'); -- 直接把名字和值从insert中去掉
注意用了自增长,就不要手动赋值了,否则会使用手动赋的值

不从1开始的例子
create table course(
    cid int primary key auto_increment, /*产生一个自动增长的值*/
    cname varchar(10)
) auto_increment=1000;

10. 默认值 (default)

create table person(
    id int primary key auto_increment,
    cname varchar(10),
    sex char(1) default '男',
    lastmodify timestamp default current_timestamp on update current_timestamp
);
-- default current_timestamp 插入数据时,采用当前时间作为默认值
-- on update current_timestamp 修改数据时,采用修改那个时刻的时间来更新这一列
insert into person(cname) values('张三');
insert into person(cname,sex) values('李四','女');

11. 修改
     update 表 set 列名=新值, 列2=值2 ...;  -- 修改表中所有的行
     update 表 set 列名=新值, 列2=值2 ... where 列名=条件;   -- 仅更新符合条件的记录 

 -- 修改表中所有课程名称
update course set cname='java se';
 -- 仅修改了cid=1000 这条记录的课程名称
update course set cname='spring' where cid=1000;

12. 删除
      delete from 表名; -- 删除这个表中所有记录,但表的定义不动
      delete from 表名 where 列名=条件; -- 仅删除符合条件的记录

      drop table 表名; -- 删除这个表,连同里面的数据


13. 导入数据
     1) 可以用
         mysql > source 路径\sql文件的名称;
         例如:source E:\6.23实训班共享\预习\数据库(详)\scott.sql

     2) 在cmd窗口运行
         mysql -uroot -p test3 < E:\6.23实训班共享\预习\数据库(详)\scott.sql
         其中test3是数据库的名字 

14. 导出数据 
      在cmd窗口运行
      mysqldump -uroot -p test3 > a.sql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值