alter tabletable_name add 约束条件(columnname);

博客涉及 SQL 中表添加列的操作,使用 'alter tabletable_name add 条件条件(columnname);' 语句,这属于后端开发中数据库操作的内容。

修改列名

alter table 表名1 change column 旧列名 新列名 varchar(20);

添加列:

   alter table 表名 add 列名 数据类型;

删除列:

alter table 表名 drop 列名 数据类型;

删除某行:

delete from 表名称 where 列名称 = 值            

eg:    delete from student7 where ano=2;

删除所有行:

delete from 表名称  或者 delete*from 表名称     

eg:   delete from student7;

查看表结构:

desc 表名;show columns from 表名;

查看见建表语言:

show create table 表名;

创建表的备份附件:

select into :从一个表中选取数据插入另一个表中,用于表的备份或者对记录进行归档

select*into new_table_name[IN externaidatabase] from old_tablename;

select column_names into new_table_name[IN externaidatabase] from old_tablename;

插入记录insert:

insert into 表名1(表1列1,表1列2)select 表2列1,表2列2   from 表2 where 条件;

查询插入

insert into 。。。。。。select。。。。。

insert into student(sno ,cno) select sno,cno fromstudent2 where sno in (4,5);

 子查询写入

insert into 表名 列名1=值1,列2= 值2,,,where;

更新记录 

update....set....

eg:  update student set sname='小明',sex='女'where sno=5;

查询select:

eg:   select *from student where age not between 50 and 65;(包含两端)

select语句

指定从哪些表中获取数据from<table-specification>

 

distinct:消除重复记录行select distinct<expressionlist>

 

 where:只返回满足特性条件的记录航(过滤器)where<condition>

 

order by:按照表达式列表排列顺序记录

order by<ordering-specification>

 desc

降序排列

   asc

升序排列

order by tg asc,tno desc

;按照第一序列排列,再按照第二序列排列。

limit:

返回特定部分的数据,而不是所有结果limit<rowcount>

 group by语句:

 select  customer,sum(orderprice) from customer  group by 列名1,列名2;

  having

设置分组条件

select  customer,sum(orderprice) from customer  group by 列名1 having  sum(orderprice)>2000;

外键

一个表可以有多个外键

[constraint symbol]foreign key [id] (index_col_name, ...)references tbl_name (index_col_name, ...)[on delete {restrict\cascade\set null\no action\set default}]

跨表匹配inner join可用 与两个没设置外键的表格:

 select column(s) from tablename1 inner join tablename2 on tablename1.column=tablename2.column innner join tablename3 on tablename1|2.column=tablename3;但是用on可以后面加其他的条件筛选,on作为表的条件,where作为结果的条件;

left join:

 即使右表中没有匹配,也从左表返回所有的行 ,左表所有记录

right join:

 即使左表中没有匹配,也从右表返回所有的行,右表所有记录

full join:

只要其中一个表中存在匹配,就返回行,有些数据库中显示full outer join

子查询: 

通过相同的列进行表间或者表内查询 ,两个表有没有外键连接都行

select sno from student where ano=(select ano from grade where result='20');

使用union联合查询

 不允许重复值:select...union select....

允许重复值:select....union all select....

输入用户名密码

shell>mysql -h localhost -p -u myname

root账户链接服务器:

shell>mysql -u root -p13465 -P 8080 -h 10.84.62.110

退出mysql,可使用

\q、quit()、exit():     mysql>\q

 mysql客户端

上下键循环调出历史命令,左右键移动光标,del键删除当前光标处字符,esc键取消当前输入内容

算术运算符:

x+y,x-y,    乘法x*y        除法x/y    ,整除x DIV y    4DIV3    ,取模x%y    4mod3    

比较运算符:

x=y 结果为true  ;  

x and y   x和y都成立的时候为true;

x or y  x和y成立一个值则为true; ;

not y    y是false 则结果为true.    

x<=>y    支持null值的比较    

x<y    x<=y   x>y   x>=y   

BETWEEN ... AND

是数值、文本或者日期。 包左不包右。

like搜索某种模式

通配符‘%'匹配任意字符

通配符‘_’表示一个字符

x rlike 'regular expression'或者x regexp 'regular expression'

正式表达式true可以匹配url,ip地址、电话号码,以及邮政编码等更为复杂的模式

where name rlike'nat';where name rlike '*&^%*new<>';

 

<>all,!=all,not in ,in,any,all,some:

 any或者some 其中的一个 ,all全部。any与in的运算方法相似,=all是不存在的,,!=all(或<>all)与not in 相似的

我们也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式):

SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William')AND LastName='Carter'

在SQL中,`ALTER TABLE ... ADD PRIMARY KEY` 语句用于为现有表添加主键约束。主键约束可以确保表中某列或多列的组合值具有唯一性,并且不允许为空(`NOT NULL`)。在添加主键时,需要通过 `column_list` 指定一个或多个列,这些列将共同构成主键。 基本语法如下: ```sql ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY (column_list); ``` 其中: - `table_name` 是要添加主键的表名。 - `constraint_name` 是主键约束的名称(可选,某些数据库系统要求指定名称)。 - `column_list` 是括号中列出的一个或多个列名,用逗号分隔,表示这些列将作为主键。 例如,假设有一个名为 `employees` 的表,包含 `employee_id`、`first_name` 和 `last_name` 列,现在希望将 `employee_id` 设置为主键[^1]: ```sql ALTER TABLE employees ADD CONSTRAINT pk_employee_id PRIMARY KEY (employee_id); ``` 如果希望将多个列组合设置为主键,例如将 `order_id` 和 `product_id` 组合作为主键,则可以这样写: ```sql ALTER TABLE orders ADD CONSTRAINT pk_order_product PRIMARY KEY (order_id, product_id); ``` 主键约束会自动创建一个唯一性索引以提高查询效率[^1]。此外,添加主键后,相关列将自动设置为 `NOT NULL`,如果原表中这些列存在空值,则添加主键操作会失败。 ### 注意事项 1. 在添加主键之前,确保指定的列或列组合中没有重复值。 2. 某些数据库系统(如 MySQL)不要求显式指定约束名称,但为了便于后续维护,建议始终指定。 3. 如果表中已有数据,添加主键时需要确保所有现有行的主键列值满足唯一性和非空性要求。 ### 示例代码 以下是一个完整的示例,展示如何在现有表中添加主键: ```sql -- 创建一个示例表 CREATE TABLE customers ( customer_id INT, name VARCHAR(100), email VARCHAR(100) ); -- 添加主键约束 ALTER TABLE customers ADD CONSTRAINT pk_customer_id PRIMARY KEY (customer_id); ``` 在执行上述操作后,`customers` 表的 `customer_id` 列将成为主键,并且该列的值必须是唯一的且不能为 `NULL`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值