MySQL基础

一.数据库基础操作

1.连接
DOS窗口 mysql -uroot -p
2.建数据库
create database db_admin; 建数据库
show databases;,展示当前数据库,包括系统数据库和用户数据库
use db_admin;,使用当前数据库
alter database db_database02
->default character set GBK修改字符集为GBK
->default collate GBK_chinese_ci;修改字符集的校对规则为简体中文
drop database db_teat;删除数据库

二.数据表基础操作

1.` mysql> create table tb_admin(
-> id int auto_increment primary key,
-> user varchar(30) not null,
-> password varchar(30) not null,
-> createtime datetime);
2.查看当前数据表
show columns from tb_admin from db_admin;

+------------+-------------+------+-----+---------+----------------+
| Field      | Type        | Null | Key | Default | Extra          |
+------------+-------------+------+-----+---------+----------------+
| id         | int(11)     | NO   | PRI | NULL    | auto_increment |
| user       | varchar(30) | NO   |     | NULL    |                |
| password   | varchar(30) | NO   |     | NULL    |                |
| createtime | datetime    | YES  |     | NULL    |                |
+------------+-------------+------+-----+---------+----------------+

desc tb_admin user;

+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| user  | varchar(30) | NO   |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

alter table tb_admin add email varchar(50) not null,
-> modify user varchar(40);

+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| user  | varchar(40) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

alter table db_admin.tb_admin
-> change column user username varchar(30) null default null;

+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| username | varchar(30) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+

mysql> select * from tb_user;查询

alter table tb_admin rename as tb_user;重命名

alter table tb_user drop email;删除字段

drop table tb_user1;删除数据表

+------------+-------------+------+-----+---------+----------------+
| Field      | Type        | Null | Key | Default | Extra          |
+------------+-------------+------+-----+---------+----------------+
| id         | int(11)     | NO   | PRI | NULL    | auto_increment |
| username   | varchar(30) | YES  |     | NULL    |                |
| password   | varchar(30) | NO   |     | NULL    |                |
| createtime | datetime    | YES  |     | NULL    |                |
+------------+-------------+------+-----+---------+----------------+

create table tb_usernew
-> like tb_user;(不复制表中的数据)

desc tb_usernew;
+------------+-------------+------+-----+---------+----------------+
| Field      | Type        | Null | Key | Default | Extra          |
+------------+-------------+------+-----+---------+----------------+
| id         | int(11)     | NO   | PRI | NULL    | auto_increment |
| username   | varchar(30) | YES  |     | NULL    |                |
| password   | varchar(30) | NO   |     | NULL    |                |
| createtime | datetime    | YES  |     | NULL    |                |
+------------+-------------+------+-----+---------+----------------+

连表中数据一并复制
create table tb_user1
-> as select * from tb_user;

三.运算符

1.比较运算符

(1)."="
select id,books,id=27 from tb_book;
查询出id等于27的记录
(2)."<>“和”!="
select id,book,row<>1,row!=41,row!=24 from tb_books;
查询数据表中的row字段值书否等于1,41,或24 ,不相等返回1;
(3).">"
select id,books,row>90 from tb_book;
用来判断左边的操作数是否大于右边的操作数
(4).IS NULL
select id,books,row IS NULL from tb_book;
判断tb_book中的row字段值是否为空值
(5).BETWEEN AND
select row row between 10 and 50 from tb_book;
用于判断数据是否在某个取值范围内
(6).IN
select row,row IN(10,95,30) from tb_book;
用于判断数据是否存在于某个集合中,若等于集合中一值,返回1
(7).LIKE
select user,user like ‘mr’ from tb_book;
判断user字段值是否与指定的字符串匹配,匹配则返回1
(8).REGEXP
select user,user REGEXP’m’,regexp’g$’,regexp’^m’ from tb_book;
判断user字段的值是否以指定字符开头,结尾,同时是否包含指定字符串

"^“匹配字符串开始部分,”$“匹配字符串结尾,”."代表字符串中一个字符
则本例:user字段值是否以m字符开头,以g字符结尾,在user字段值中是否包含m字符,如果满足条件则返回1.

2.逻辑运算符

(1).&&或者AND
select row,row&&1,row&&0 from tb_book;
如果所有数据不为零且不为NULL时,结果返回1;
如果存在任何一个数据为零,结果返回0;
如果存在一个数据为NULL且没有数据为零时,返回NULL
(2).||或OR
所有数据中存在任何一个数据非零,结果返回1;
数据中不包含非零数字,但包含NULL,结果返回NULL;
否则返回0
(3).! 非运算
select row,!row from tb_user;
操作数据是NULL时 结果返回NULL;
(4).XOR异或运算
select row,row XOR 1,row 0 from tb_book;
只要其中一个数据为NULL,结果返回NULL;
如果都是非零值,或都是零,则返回结果为零
一个为零,一个非零,返回结果1;
row字段中值为非零数字和NULL值,则“row XOR 1"返回值为0和NULL;

三.位运算符

1、位或运算符 ( | ) :对应的二进制位有一个或两个为 1 ,则该位的运算结果为 1 ,否则为 0

mysql> SELECT 10 | 15 , 9 | 4 | 2 ;
±--------±----------+
| 10 | 15 | 9 | 4 | 2 | # 10的二进制为1010,15的二进制为1111,运算结果为1111,即15

算结果为 1 ,否则为 0
mysql> SELECT 10 & 15 , 9 & 4 & 2 ;±--------±----------+| 10 & 15 | 9 & 4 & 2 |±--------±----------+| 10

1、位或运算符 ( | ) :对应的二进制位有一个或两个为 1 ,则该位的运算结果为 1 ,否则为 0
mysql> SELECT 10 | 15 , 9 | 4 | 2 ;
+---------+-----------+
| 10 | 15 | 9 | 4 | 2 |     # 10的二进制为1010,15的二进制为1111,运算结果为1111,即15
+---------+-----------+     # 9的二进制为1001,4的二进制为0100,2的二进制为0010,运算结果为1111,即15
|   15    |     15    |    
 +---------+-----------+ 
 2、位与运算符 ( & ) :对应的二进制位都为 1 ,则该位的运算结果为 1 ,否则为 0
mysql> SELECT 10 & 15 , 9 & 4 & 2 ;
+---------+-----------+
| 10 & 15 | 9 & 4 & 2 |
+---------+-----------+
|    10   |     0     |
+---------+-----------+ 
3、位异或运算符 ( ^ ) :对应的二进制位不相同时,结果为 1 ,否则为 0
mysql> SELECT 10 ^ 15 , 1 ^ 0 , 1 ^ 1 ;
+---------+-------+-------+
| 10 ^ 15 | 1 ^ 0 | 1 ^ 1 |
+---------+-------+-------+
|    5    |   1   |   0   |
+---------+-------+-------+ 
4、位左移运算符 ( << ) :使指定的二进制位都左移指定的位数,左移指定位之后,左边高位的数值将被移出并丢弃,右边低位空出的位置用 0 补齐
mysql> SELECT 1<<2 , 4<<2 ;
+------+------+
| 1<<2 | 4<<2 |    # 1的二进制值为00000001,左移两位之后变成00000100,即十进制数4
+------+------+    # 4的二进制值为00000100,左移两位之后变成00010000,即十进制数16
|   4  |   16 |
+------+------+
 5、位右移运算符 ( >> ) :使指定的二进制位都右移指定的位数,右移指定位之后,右边低位的数值将被移出并丢弃,左边高位空出的职位用 0 补齐
 mysql> SELECT 1>>1 , 16>>2 ;
 +------+-------+
 | 1>>1 | 16>>2 |
 +------+-------+
 |   0  |   4   |
 +------+-------+
  6、位取反运算符 ( ~ ) :将对应的二进制数逐位反转,即 1 取反后变 00 取反后变 1
  mysql> SELECT 5 & ~1 ;
  +--------+
  | 5 & ~1 |
  +--------+
  |   4    |
  +--------+

四.运算优先级

按照从高到低,从左到右的级别进行运算操作,如果优先级相同,则表达式左边运算符先运算
1.!
2.~
3.^
4.*,/,DIV,%,MOD
5.+,-
6.>>,<<
7.&
8.|
9.=,<=>,<,<=,>,>=,!=,<>,IN,IS NULL,LIKE,REGEXP
10.BETWEEN AND,CASE,WHEN,THEN,ELSE
11.NOT
12.&&,AND
13.||,OR,XOR
14.=

五.额外说明

MySQL数据库中的sql语句是否区分大小写,在不同的操作系统中表现不同。
在windows系统中不区分大小写:
SELECT * FROM USER WHERE USERNAME=’…’ " 和 "select * from user where username=‘…’ "查询结果是一样的。
在Linux和Unix系统中字段名、数据库名和表名要区分大小写。
这里所说的操作系统是指你的MySQL数据安装在哪个操作系统。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值