MySQL知识点

MySQL 数据类型


MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。


一、连接数据库

终端输入:

$ mysql -u root -p

输入密码

Enter password: 

二、创建“数据库” 和 “表”

【注意】

esc 按键下面的那一个 ~ 按键,坑惨了。 如  表名 或 字段名 与 mysql关键字order相同时      使用---->   `order`

反引号是为了区分 MySql 关键字与普通字符而引入的符号,一般的,表名与字段名都使用反引号。

1、数据库的基本操作

a、====创建数据库=======

方法1:  连接mysql成功后,创建名为yjl_test的数据库

mysql> create database yjl_test;
方法2: 使用 mysqladmin 创建数据库

使用普通用户,你可能需要特定的权限来创建或者删除 MySQL 数据库。

所以我们这边使用root用户登录,root用户拥有最高权限,可以使用 mysql mysqladmin 命令来创建数据库。

以下命令简单的演示了创建数据库的过程,数据名为 RUNOOB:

[root@host]# mysqladmin -u root -p create RUNOOB
Enter password:******
b、=====删除数据库======
方法1:  连接mysql成功后,删除名为yjl_test的数据库
mysql> drop database yjl_test;

方法2: 使用 mysqladmin 删除数据库


2、"表"操作

在名为“yjl_test”的数据库中创建名为“student”的表

第一步:使用数据库

mysql> use yjl_test;

第二步:创建表create table 表名();

mysql> create table student(
    -> student_id int not null auto_increment,
    -> name varchar(50) not null,
    -> sex varchar(20) not null,
    -> primary key (student_id)
    -> )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

字段说明:
字段student_id   类型为 int   不能为空(not null)    值(自动填充/生成  auto_increment)
         name   类型为字符串且长度最大为50(varchar(50))  不能为空(not null) 
         sex    同name一样
   primary key (student_id)     设置student_id为主键
ENGINE=InnoDB  使用innodb引擎 
DEFAULT CHARSET=utf8  数据库默认编码为utf-8
AUTO_INCREMENT=1   自增键的起始序号为1

扩展:
1.InnoDB,是MySQL的数据库引擎之一,为MySQL AB发布binary的标准之一。
2.AUTO_INCREMENT会在新记录插入表中时生成一个唯一的数字。希望在每次插入新记录时,自动地创建主键字段的值,可以在表中创建一个 auto-increment 字段。


====【补充】======

查看student表中的所有字段:mysql> desc student;

删除student表:  mysql> drop table student;


三、查看所有的数据库  和 数据库对应的所有表

1、显示mysql中所有的数据库

mysql> show databases;

2、使用数据库testmysql

mysql> use testmysql;

3、显示数据库 testmysql中所有的表

mysql> show tables;

四、数据的“增删改查”

1. “添加”数据到数据库yjl_test下面的student表中:    insert into

mysql> insert into student(student_id,name,sex)
    -> values
    -> ("1000","yjl","男");

2、从student表中“删除”数据student_id=2000的数据

mysql> delete from student where student_id='2000';


3、修改数据

语法:update 表名 set 字段=新值,… where 条件

student_id=1000的学生的名字改为yjl

mysql> update student set name='yjl' where student_id='1000';


4、查询

查询整个表: mysql> select *from student;

查询student_id=1000的这条数据:  mysql> select *from student where student_id='1000';


limit N : 返回 N 条记录

返回2条数据:mysql> select *from student limit 2;


limit N,M : 相当于 offset N limit M , 从第 N 条记录开始, 返回 M 条记录

返回第2条数据:mysql> select *from student limit 1,2;


符合某个条件的数据的所有条数
select count(*) from `order`  where delivery_day='2018-06-25';


5、排序

降序 “order by”   “desc” 

mysql> select *from student order by student_id desc;


升序 “order by”    “asc”

mysql> select *from student order by student_id desc;


符合某个条件的数据 按某个条件降序排列
select *from `order` where delivery_day='2018-06-25' order by goods_price desc ;

6、取出某个字段为“不为空”的所有数据

Select   *   From   table Where id<>'';

Select   *   From   table Where id!='';


7、取出某个字段为“为空”的所有数据

Select   *   From   table Where id='';

Select   *   From   table Where   ISNULL(id);

8、MySQL -> Like  使用

like 匹配/模糊匹配,会与 % 和 _ 结合使用。
'%a'     //以a结尾的数据
'a%'     //以a开头的数据
'%a%'    //含有a的数据
'_a_'    //三位且中间字母是a的
'_a'     //两位且结尾字母是a的
'a_'     //两位且开头字母是a的

【举栗子】
查询以 java 字段开头的信息。
SELECT * FROM position WHERE name LIKE 'java%';
查询包含 java 字段的信息。
SELECT * FROM position WHERE name LIKE '%java%';
查询以 java 字段结尾的信息。
SELECT * FROM position WHERE name LIKE '%java';

9、“主键” 与  “外键”   

例如:
学生表student(学号(student_id),姓名(student_name),性别(student_sex))

表内有:1,aa,女

student表

student_id      student_name    student_sex

1                             aa                 女

课程表subject(课程编号(subject_id),课程名(subject_name))

表内有:1,语文

subject表

subject_id    subject_name

       1                   语文

成绩表grade(成绩编号(grade_id),学号(student_id),课程号(subject_id),成绩(grade))

表内有:1,1,1,90

grade表

grade_id        student_id      subject_id      grade

     1                    1                   1                90

成绩表的学号就是学生表的学号相对应,并且为学生表的主键,这样就称成绩表中的学号是学生表的外键,同理,成绩表中的课程号是课程表的外键。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值