MySQL数据库操作

主要内容:

  • MySQL安装
  • 基本MySQL命令行操作

数据库知识

  • 数据库(database):即容器——保存有组织的数据;
  • 表(table):某种特定类型数据的结构化清单;
  • 模式(schema):关于数据库和表的布局及特性的信息;
  • 列(column):表中的一个字段,所有表都是由一个或者多个列组成的;
  • 数据类型(datatype):所容许的数据的类型。每个表列都有相应的数据类型,它限制该列中存储的数据;
  • 行(row):表中的一个记录;
  • 主键(primary key):一列(或者一组列),其值能够唯一区分表中的每行;
  • SQL(Structured Query Language):一种专门用来与数据库通信的结构化查询语言。

MySql数据类型

  • 为每一列选择正确的数据类型是创建一个数据库首要考虑的问题;
  • 数据类型确保提供的数据的正确性;
  • 在排序或者比较数据时,需要知道数据的类型。如是时间类型还是数值型数据;
  • 便于优化查询、节省磁盘空间。

MySQL共支持三种数据类型:

  • Numeric
  • Data & Time
  • String

Numeric

  • 整形(integers)

    • tinyint
    • smallint
    • mediumint
    • integer
    • bigint

      这里写图片描述
  • 浮点型(floating points)

    • float
    • double
    • decimal

Data & Time

  • date
  • time
  • datetime
  • year
  • timestamp

timestamp格式总结:


这里写图片描述

String

  • char
  • varchar
  • binary
  • varbinary
  • blob
  • text
  • enum
  • set

安装MySQL

安装MySQL的方式有很多,比如通过安装包、二进制文件,或者从sources。在Linux操作系统上,我们可以很容易地使用 apt-get 命令进行安装。

$ sudo apt-get install mysql-server

该命令会自动进行MySQL以及相关包的安装。在安装过程中会提示你输入MySQL的root密码。安装好后,在shell中进入MySQL:

$ mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.16-0ubuntu0.16.04.1 (Ubuntu)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

这样就进入了MySQL!注意:我在-p后面省略了登录密码,接着在“Enter password”提示后面输入密码即可。
一般情况下,不建议使用MySQL的超级用户root,因为错误的操作会损坏我们的数据。只有在有需要的时候才使用root登录。所以,在进行操作之前最好是创建一个新用户,并赋予该新用户一定权限。

mysql> CREATE USER newuser@localhost IDENTIFIED BY '123';#创建新用户以及密码
mysql> GRANT ALL ON mydb.* to user12@localhost;#赋予新用户所有权利

其他基本命令:

  • 清屏:Ctrl+L
  • 退出:Ctrl+D or quit
  • 帮助:help
  • 在MySQL中操作Linux命令:system+Linux命令

MySQL基本操作

检查数据库

  • 查看数据库:show databases;
  • 创建数据库:create database mydb;
  • 选择数据库:use mydb;
  • 查看数据库中的表:show tables;
  • 查看表结构:describe table;
  • 删除表:drop table table;
  • 创建表:create table table_name(column_name1 column_type1,column_name2 column_type2......,primary key(column_name));
  • 清空表内容:delete from mytable;/truncate table mytable;

查询、检索

  • 检索单(多)个列:select c1(,c2) from table;
  • 检索所有列:select * from table;
  • 检索不同的行:select distinct column from table;
  • 限制输出结果:select * from table limit 10;/select * from limit 15,5;
  • 输出结果重定向: mysql -uroot -p database -e 'select * from table' > file.txt
  • 升(降)序排序数据:select column from table order by column (desc);
  • 过滤数据:where、and、or、in、like、%、_、正则表达式
  • 统计数据:max()、min()、sum()、avg()、count()
  • 分组数据:group by
mysql> SELECT District, SUM(Population) FROM City
    -> WHERE District = 'New York' GROUP BY District;
+----------+-----------------+
| District | SUM(Population) |
+----------+-----------------+
| New York |         8958085 |
+----------+-----------------+
1 row in set (0.00 sec)
# 处理group by的数据时,需要使用having代替where

更新、删除、插入数据

  • 更新数据:update
mysql> UPDATE Country SET HeadOfState = 'Donald Trump'
    -> WHERE Name = 'United States';
# 更新美国总统为特朗普
  • 临时表: create temp_table engine=memory select * from fans_data limit 5;
  • 删除表中指定数据:delete from table where id in (1,2,3);
  • 插入数据:insert into table value('a'、'b'、'c');
  • 修改数据:alter table
  • 修改表名:alter table old_table rename to new_table;
  • 增加新列:alter table my_table add new_column column_type;
  • 增加主键:alter table my_table add primary key (column_name);
  • 修改列名:alter table my_table change column old_columnname new_columnname column_type;
  • 修改数据类型:alter table my_table modify column column_name new_columntype;
  • 删除某列:alter table my_table drop column column_name;
  • 插入数据:insert into table_name(column1,column2) values(......),(......),(......);
  • 替换掉某一行:replace into table_name values(......);
  • 从一个表中选择数据并插入到另一个表中:insert into table1 select * from table2;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值