MySQL基础

SQL学习

MySQL

登录:mysql -u root -p:

数据库相关

创建数据库: create database db charset utf8;
查看数据库:show databases;
查看某一个数据库:show database like 'db';
查看某一种数据库:show database like 'd';
删除数据库: DROP DATABASE my_db1;

表相关

创建表:create table student(student_id int, name varchar(20) );
       create table teacher(id int primary key auto_increment,t_name varchar(20),c_name varchar(128));
查看表:show tables;
              
查看表的描述:desc(describe) student(student为某一个表名);
          show columns 
查看建表的语句:show create table schedule; (schedule为某一个表名);
删除表:drop student;
修改表名:rename table student to xuesheng;
修改多个表名:rename table xuesheng to student, xuesheng2 to student2;
修改到另一个表里面并修改名字:rename table xuesheng to class.xuesheng, xuesheng2 to class.xuesheng2;
添加表元素:alter table student add tizhong int; 
修改表元素名:alter table student modify name varchar(40);
注:xuesheng 

表的增、删、改、查

首先先创建一个表teacher
create table teacher(id int primary key auto_increment,t_name varchar(20),c_name varchar(128));

插入:

insert into 表名 (列1,列2) values(值1,值2);

查询:

select * from teacher;

正如所见,SELECT返回所有匹配的行。但是,如果你不想要每个值 每次都出现,怎么办?例如,假如你想得出products表中产品的所有供 应商ID:

输入: show vend_id from products;
输出:

vend_id
1001
1001
1001
1002
1002
1002
1003
1003
1003

SELECT语句返回9行(即使表中只有3个供应商),因为products表 中列出了9个产品。那么,如何检索出有不同值的列表呢?

解决办法是使用DISTINCT关键字,顾名思义,此关键字指示MySQL 只返回不同的值。

select distinct vend_id from products;

不能部分使用DISTINCT DISTINCT关键字应用于所有列而 不仅是前置它的列。如果给出SELECT DISTINCT vend_id, prod_price,除非指定的两个列都不同,否则所有行都将被 检索出来。

改:

update 表名 set 列名称 = 新值 where id = 1;

删:

DELETE FROM 表名称 WHERE 列名称 = 值

你可能感兴趣的:(MySQL基础)