Mysql简单语句(数据库基础操作SQL语句)

1. MySQL

        MysQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一,在Web 应用方面,MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统)应用软件。

MysQL 是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。

2.SQL 语言

        结构化查询语言(Structured Query Language)简称 SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统:SQL 语句就是对数据库进行操作的一种语言。

Mysql服务器启动: 

#MAC
mysqlstart  

#Windows       
net start mysql 
  
#Linux
/etc/rc.d/init.d/mysqld start 
 
#mysql打开
mysql -u root -p   

  常用的SQL语句:创建、查看数据库和表

SHOW DATABASES;  #查看数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| GlobalToys         |
| information_schema |
| jdbc               |
| ltp                |
| mysql              |
| performance_schema |
| sys                |
| testbase           |
+--------------------+
8 rows in set (0.00 sec)

CREATE DATABASE NEWNAME;  #创建数据库
mysql> create database Aplexia;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| Aplexia            |
| GlobalToys         |
| information_schema |
| jdbc               |
| ltp                |
| mysql              |
| performance_schema |
| sys                |
| testbase           |
| xinyi              |
+--------------------+
10 rows in set (0.00 sec)


USE NEWNAME;    #选择数据库
SHOW TABLES;	#查看当前数据库存在表
mysql> use ltp
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------+
| Tables_in_ltp |
+---------------+
| exams         |
| new           |
| papers        |
| questions     |
| role          |
| subjects      |
| users         |
+---------------+
7 rows in set (0.00 sec)

CREATE TABLE NEWTABLE;       #创建表	
mysql> create table xinyi (
sno char(10) NOT NUll,
 cname varchar(20) NOT NULL, 
CONSTRAINT C1 PRIMARY KEY(sno,cname)
 );
Query OK, 0 rows affected (0.01 sec)
mysql> show tables;
+-------------------+
| Tables_in_aplexia |
+-------------------+
| xinyi             |
+-------------------+
1 row in set (0.00 sec)


DESCRIBE NEWTABLE;	 #显示表结构
mysql> describe xinyi;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| sno   | char(10)    | NO   | PRI | NULL    |       |
| cname | varchar(20) | NO   | PRI | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
也可以直接简写:desc xinyi;

#查看表sql源码
show create table xinyi;

#对数据库进行操作
#分离数据库:
sp detach db;

#附加数据库:
sp attach db 数据库名(附加需要完整的路径名)

#修改数据库的名称:
sp_ renamedb 'old name', new_name';

简单条件语句查询:

#删除表
drop TABLE NEWTABLE; 
mysql> drop table new;
Query OK, 0 rows affected (0.00 sec)

#清空表
delete from NEWTABLE; 
mysql> select * from role;
+--------+--------------+
| roleid | rolename     |
+--------+--------------+
|      1 | 管理员       |
|      2 | 普通用户     |
+--------+--------------+
2 rows in set (0.00 sec)

#仅复制表结构
mysql>create table newrole like role;  
#where使的条件不成立,仅复制表结构 
mysql> create table newrole3 select * from subjects where 2=3;

mysql> show tables;
+---------------+
| Tables_in_ltp |
+---------------+
| exams         |
| newrole       |
| papers        |
| questions     |
| role          |
| subjects      |
| users         |
+---------------+
7 rows in set (0.00 sec)

#复制表结构与数据
mysql> create table newrole1 select * from subjects; 
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0


#给users表查创建一个unique索引pk_name
create UNIQUE INDEX pk_name on users(major); 

#索引是不可更改的,想要更改必须现删除重建
drop index idxname;  

#给users表添加一个主键
alter table users ADD PRIMARY KEY(major);

#删除主键  
alter table users drop primary key(major);  


#视图创建
CREATE VIEW viewusers 	
AS 
SELECT username,password
from users;

#删除视图
drop view viewusers;  

#选择user表中username=111
SELECT * FROM users WHERE username="111"  

#向users表中插入一条数据username和password
INSERT INTO users(username,password) VALUES(100861111,1234); 

update BEWTABLE set 字段 2=“数据x”  where 字段1=“数据1”;
mysql> select * from xinyi;
+------+-------+
| sno  | cname |
+------+-------+
| 2021 | rjw   |
+------+-------+
1 row in set (0.00 sec)
mysql> update xinyi set cname="网络安全" where cname="rjw";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from xinyi;
+------+--------------+
| sno  | cname        |
+------+--------------+
| 2021 | 网络安全     |
+------+--------------+
1 row in set (0.00 sec)

为了便捷一点,在上面很多语句中博主偷懒并没有语句大小写标准化,建议大家平时练习中养成SQL指定大写的习惯~以上是一些简单的SQL语句,此外还有更高级一些语句存在,UNION运算符、EXPECT运算符、左连接、右连接、全连接。感兴趣的小伙伴可以去学习一下进阶版本呢~ 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ApLinuxor

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值